• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

als er een 0 staat dan cel leeg maken met de voorgaande cel

  • Onderwerp starter Onderwerp starter ewh
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
Mooi om te vernemen ewh.
Code:
Sub invoegen()
Dim sn, i As Long, Odic As Object
sn = Sheets("Blad1").Cells(2, 1).CurrentRegion
Set Odic = CreateObject("scripting.dictionary")
  For i = 3 To UBound(sn)
      If sn(i, 6) > 0 Then Odic.Item(sn(i, 7) & " - " & sn(i, 1)) = Odic.Item(sn(i, 7) & " - " & sn(i, 1))
   Next i
Sheets("Blad1").Cells(3, 14).Resize(Odic.Count) = Application.Transpose(Odic.keys)
End Sub
 
Laatst bewerkt:
Hum,
de code werkt niet zo als zo moeten , even snel getest in het voorbeeld bestandje
het lijkt er op dat hij het dubbel doet ?

ik ga proberen hem morgen te ontcijferen.
 
Probeer het nog maar eens als de drank is uitgewerkt. :d
 
Sommige regels zijn met hoofdletters en anderen niet.
35 - installatie Qc, MLE ovens
35 - installatie QC, MLE ovens

Door de blauwe regel toe te voegen is het niet meer hoofdlettergevoelig.
Code:
Sub invoegen()
Dim sn, i As Long, Odic As Object
sn = Sheets("Blad1").Cells(2, 1).CurrentRegion
Set Odic = CreateObject("scripting.dictionary")
[COLOR=#0000ff]    Odic.CompareMode = vbTextCompare[/COLOR]
  For i = 3 To UBound(sn)
      If sn(i, 6) > 0 Then Odic.Item(sn(i, 7) & " - " & sn(i, 1)) = Odic.Item(sn(i, 7) & " - " & sn(i, 1))
   Next i
Sheets("Blad1").Cells(3, 14).Resize(Odic.Count) = Application.Transpose(Odic.keys)
End Sub

Of met with:
Code:
Sub invoegen()
Dim sn, i As Long
sn = Sheets("Blad1").Cells(2, 1).CurrentRegion
With CreateObject("scripting.dictionary")
   [COLOR="#0000FF"] .CompareMode = vbTextCompare[/COLOR]
  For i = 3 To UBound(sn)
      If sn(i, 6) > 0 Then .Item(sn(i, 7) & " - " & sn(i, 1)) = .Item(sn(i, 7) & " - " & sn(i, 1))
   Next i
Sheets("Blad1").Cells(3, 14).Resize(.Count) = Application.Transpose(.keys)
End With
End Sub
 
Laatst bewerkt:
"Probeer het nog maar eens als de drank is uitgewerkt." ha ha ha
dat was ff later

maar heb je je laatste code met With al eens geprobeerd in me voorbeeld bestandje ???
op zich werkt hij wel maar de uren zie ik niet wel heb ik + sn ( i,6 ) toegevoegd maar zonde resultaat
blijft er nog een probleempje over want de bestemming moet dan ook mee genomen worden als we de gelijken bij elkaar optellen
misschien beter om alles apart over et nemen ? om riscio's te vermijden ?

wil jij nog eens kijken ( helpen ? )
 
Laatst bewerkt:
klopt , daar bedoel ik mee dat elke regel zijn eigen bestemming en uren mee krijgt
 
Begrijp er geen snars van.

In het bestandje staat ook nog eens.
dus de vraag is nu:

als kolom F een waarde heeft groter dan 0 dan kolom G en Asamen voegen en plaatsen in J

Maar als het nu weer anders moet,.......
[TABLE="width: 575"]
[TR]
[TD="colspan: 4"]reparatie verlichting LS[/TD]
[TD]NL90901[/TD]
[TD]2,0[/TD]
[TD]35[/TD]
[/TR]
[TR]
[TD="colspan: 4"]reparatie verlichting LS[/TD]
[TD]NL90901[/TD]
[TD]3,0[/TD]
[TD]35[/TD]
[/TR]
[/TABLE]

.....welke van bovenstaande regel moet behouden blijven.
 
de monteur de tikt de werkzaamheden in ( en dat zal niet altijd gelijk zijn, denk aan spaties hoofdletters en tik fouten )
de gewerkte uren wordt ook door de monteur ingevoerd ( en die zijn altijd wel juist )
de bestemming wordt door zijn leiding gevende in gevoerd

dus er zijn twee variabele de omschrijving en in principe de bestemming

vandaar lijkt het mij het verstandigste om niets meer samen te voegen ( om fouten te voorkomen)

dus uit eindelijk krijgen we het (weeknummer - omschrijving), uren, bestemming
 
Plaats eens een nieuw bestand met het verwachte resultaat.
Kan ik me daar op focussen.
 
Dan moet je dit maar eens proberen.
Code:
Sub hsv()
Dim sn, i As Long, j As Long, n As Long
sn = Cells(1).CurrentRegion
n = 1
 For i = 1 To UBound(sn)
  For j = 1 To 4
    If i < 3 Or j = 2 Or j = 3 Or j = 4 Or j = 7 Then
         sn(i, j) = ""
      Else
         sn(n, 1) = sn(i, 7) & " - " & sn(i, 1)
         sn(n, 2) = sn(i, 6)
         sn(n, 3) = sn(i,5)
     End If
    Next j
   If i > 2 Then n = n + 1
 Next i
 Cells(3, 14).Resize(n - 1, 3) = sn
End Sub
 
Laatst bewerkt:
top , dat is wat ik bedoel
hij werkt
nu proberen te begrijpen wat je hebt geschreven,
 
Prima, dan mag je het nog aanpassen; ik heb het iets gewijzigd (uitkomst is hetzelfde).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan