Superzeeuw
Terugkerende gebruiker
- Lid geworden
- 21 feb 2006
- Berichten
- 1.037
Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
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.
If Regel = 0 Then Exit Sub
If Kolom = 13 And Cells(Regel, Kolom).Value <> "" Then
If UCase(Cells(Regel, 12).Value) = "YES" Then
With Sheets("Substances")
Set c = .Range("A3:A5000").Find(Cells(Regel, "A").Value, LookIn:=xlValues)
If Not c Is Nothing Then
NextPC = .Cells(c.Row, c.Column).End(xlDown).Row
Aantal = NextPC - c.Row - 1
If Aantal > Cells(Regel, Kolom).Value Then
Regels = "" & NextPC - (Aantal - Cells(Regel, Kolom).Value) & ":" & NextPC - 1 & ""
.Rows(Regels).Delete shift:=xlUp
ElseIf Aantal < Cells(Regel, Kolom).Value Then
Regels = "" & NextPC & ":" & NextPC + (Cells(Regel, Kolom).Value - Aantal) - 1 & ""
.Rows(Regels).Insert shift:=xlDown
End If
Else
With Sheets("Substances")
LastRow = .Range("C65536").End(xlUp).Row + 2
.Cells(LastRow, "A").Value = Cells(Regel, "A").Value
.Cells(LastRow, "B").Value = Cells(Regel, "B").Value
For x = 1 To Cells(Regel, Kolom).Value
LastRow = LastRow + 1
.Cells(LastRow, "C").Value = x
Next x
End With
End If
End With
End If
End If
If Regel = 0 Then Exit Sub
If Kolom = 13 And Cells(Regel, Kolom).Value <> "" Then
If UCase(Cells(Regel, 12).Value) = "YES" Then
With Sheets("Substances")
Set c = .Range("A3:A5000").Find(Cells(Regel, "A").Value, LookIn:=xlValues)
If Not c Is Nothing Then
NextPC = .Cells(c.Row, c.Column).End(xlDown).Row
Aantal = NextPC - c.Row - 1
If Aantal > Cells(Regel, Kolom).Value Then
Regels = "" & NextPC - (Aantal - Cells(Regel, Kolom).Value) & ":" & NextPC - 1 & ""
.Rows(Regels).Delete shift:=xlUp
ElseIf Aantal < Cells(Regel, Kolom).Value Then
Regels = "" & NextPC & ":" & NextPC + (Cells(Regel, Kolom).Value - Aantal) - 1 & ""
.Rows(Regels).Insert shift:=xlDown
End If
Else
With Sheets("Substances")
LastRow = .Range("C65536").End(xlUp).Row + 2
.Cells(LastRow, "A").Value = Cells(Regel, "A").Value
.Cells(LastRow, "B").Value = Cells(Regel, "B").Value
[COLOR="Red"]For x = 1 To Cells(Regel, Kolom).Value
LastRow = LastRow + 1
.Cells(LastRow, "C").Value = x
Next x[/COLOR]
End With
End If
End With
End If
End If
Ik heb nog wel wat kleine vraagjes:
[1] Is het mogelijk om als kolom 9 (M) uit het bestand NO is ipv YES (of veranderd wordt),de gehele regel verwijderd wordt in het tabblad Uitsplitsing (2), dus niet alleen de subregels?
[2] Als een getal is ingevuld op tabblad 'Info' in kolom N en dit wordt veranderd, dan komen er geen nieuwe cijfers bij op tabblad Uitsplitsing (2) als het getal hoger wordt. Enig idee hoe dit kan?
[3] Is het eventueel mogelijk om als het aantal componenten op 0 wordt gezet (= kolom N), maar kolom M met YES is beantwoord, eventueel toch 1 regel toe te voegen met daarin n/a?
Dit heb je toch al opgelost met formules?[1] Is het mogelijk om als kolom 9 (M) uit het bestand NO is ipv YES (of veranderd wordt),de gehele regel verwijderd wordt in het tabblad Uitsplitsing (2), dus niet alleen de subregels?
Bedoel je het zoals in het nieuwe bijgevoegde progje?[2] Als een getal is ingevuld op tabblad 'Info' in kolom N en dit wordt veranderd, dan komen er geen nieuwe cijfers bij op tabblad Uitsplitsing (2) als het getal hoger wordt. Enig idee hoe dit kan?
Kost wat meer moeite om te maken.[3] Is het eventueel mogelijk om als het aantal componenten op 0 wordt gezet (= kolom N), maar kolom M met YES is beantwoord, eventueel toch 1 regel toe te voegen met daarin n/a?
Helaas niet. Ik heb het niet voor elkaar gekregen om de regel dan helemaal te verwijderen. De 1e regel (namelijk met de productcode/productnaam) blijft bestaan.RV2010,
Dit heb je toch al opgelost met formules?
Precies, dat bedoel ikBedoel je het zoals in het nieuwe bijgevoegde progje?
Ok, dan laat dat maar zittenKost wat meer moeite om te maken.
If Regel = 0 Then Exit Sub
If Kolom = 13 And Cells(Regel, Kolom).Value > "0" Then
If UCase(Cells(Regel, 12).Value) = "YES" Then
With Sheets("Uitsplitsing")
Set c = .Range("A4:A5000").Find(Cells(Regel, "A").Value, LookIn:=xlValues)
If Not c Is Nothing Then
NextPC = .Cells(c.Row, c.Column).End(xlDown).Row
Aantal = NextPC - c.Row - 1
If Aantal > Cells(Regel, Kolom).Value Then
Regels = "" & NextPC - (Aantal - Cells(Regel, Kolom).Value) & ":" & NextPC - 1 & ""
.Rows(Regels).Delete shift:=xlUp
ElseIf Aantal < Cells(Regel, Kolom).Value Then
Regels = "" & NextPC & ":" & NextPC + (Cells(Regel, Kolom).Value - Aantal) - 1 & ""
.Rows(Regels).Insert shift:=xlDown
End If
Else
With Sheets("Uitsplitsing")
LastRow = .Range("C65536").End(xlUp).Row + 2
.Cells(LastRow, "A").Value = Cells(Regel, "A").Value
.Cells(LastRow, "B").Value = Cells(Regel, "B").Value
For x = 1 To Cells(Regel, Kolom).Value
LastRow = LastRow + 1
.Cells(LastRow, "C").Value = x
Next x
End With
End If
End With
End If
End If
Wat bedoel je hier precies mee?- De beginregel aanpassen; dus waar de 1e uit het andere tabblad gehaalde regel komt.
Kolom 12 = L en daar staat nooit iets en kolom 13 = M en daar komen geen getallen voor.- Een regel helemaal verwijderen als het antwoord op kolom 12 nee is en dus kolom 13 0 is.
- Als ik een geheel nieuw hoofdregel toevoeg, wordt er steeds 1 regel tussengelaten. Maar bij het verwijderen wordt die tussenregel ook verwijderd. Hoe krijg ik dat opgelost?[/QOUTE]
Welke tussenregel bedoel je?
Dat kan met een formule die in de macro is in te voegen maar eerst de bovenstaande problemen anders verzuipen we.- Is het mogelijk om naar PC en PN te verwijzen, i.p.v. deze over te nemen?
Plaats het bijgewerkte bestand weer eens
Inderdaad vaag omschreven. Hiermee bedoel ik de 1e regel in het tabblad Uitsplitsing. Als ik hem op +2 zet begint hij bij rij 3, maar laat hij ook elke keer een regel tussen als er weer een nieuw item uit tabblad Info wordt overgenomen. Dat hij daar een regel tussenlaat is niet erg, maar ik wil graag weten hoe ik de beginrij kan instellen. Dus zeg maar stel dat ik hem op +1 zet (en dat betekend geen regels tussen nieuwe items), dat hij dan nog op rij 3 begint.- De beginregel aanpassen; dus waar de 1e uit het andere tabblad gehaalde regel komt.
In tabblad Info staan in kolommen antwoorden als YES en no. Als het YES is, moet er in kolom 13 (M) een cijfer ingevuld worden. Stel dat dit nou veranderd of verkeerd is gegaan, en kolom 12 (L) wordt weer op 'no' gezet. Dan zou eigenlijk de hele regel inclusief subregels die aangemaakt zijn op tabblad Uitsplitsing weggehaald worden.- Een regel helemaal verwijderen als het antwoord op kolom 12 nee is en dus kolom 13 0 is.
Dit heeft gedeeltelijk betrekking op mijn 1e vraag en antwoord en gaat over de volgende code. Als er een nieuw item wordt toegevoegd met een aantal subrijen (degene met nummers) dan wordt er op het einde een regel tussengelaten. Dus als er daarna weer een nieuw item wordt toegevoegd van tabblad Info naar tabblad Uitsplitsing, dan blijft er een regel tussen die 2. Maar, als ik nu bij het bovenste item bijv. getal 4 in 3 verander, dan verdwijnt die lege tussenregel en komt het volgende item meteen tegen het laatste subitem aan:- Als ik een geheel nieuw hoofdregel toevoeg, wordt er steeds 1 regel tussengelaten. Maar bij het verwijderen wordt die tussenregel ook verwijderd. Hoe krijg ik dat opgelost?
With Sheets("Uitsplitsing(2)")
LastRow = .Range("C65536").End(xlUp).Row + 2
.Cells(LastRow, "A").Value = Cells(Regel, "A").Value
.Cells(LastRow, "B").Value = Cells(Regel, "B").Value
For x = 1 To Cells(Regel, Kolom).Value
LastRow = LastRow + 1
.Cells(LastRow, "C").Value = x
Next x
With Sheets("Uitsplitsing(2)")
[COLOR="red"]if [/COLOR]LastRow = .Range("C65536").End(xlUp).Row + 1 [COLOR="red"]<3 then LastRow=3[/COLOR]
.Cells(LastRow, "A").Value = Cells(Regel, "A").Value
.Cells(LastRow, "B").Value = Cells(Regel, "B").Value
For x = 1 To Cells(Regel, Kolom).Value
LastRow = LastRow + 1
.Cells(LastRow, "C").Value = x
Next x
RV2010,
Met de volgende code kun je hem toch op regel 3 laten starten en is tevens je laatste vraag opgelost:
Code:With Sheets("Uitsplitsing(2)") [COLOR="red"]if [/COLOR]LastRow = .Range("C65536").End(xlUp).Row + 1 [COLOR="red"]<3 then LastRow=3[/COLOR] .Cells(LastRow, "A").Value = Cells(Regel, "A").Value .Cells(LastRow, "B").Value = Cells(Regel, "B").Value For x = 1 To Cells(Regel, Kolom).Value LastRow = LastRow + 1 .Cells(LastRow, "C").Value = x Next x
With Sheets("Uitsplitsing(2)")
if LastRow = .Range("C65536").End(xlUp).Row + [COLOR="red"]2[/COLOR] <3 then LastRow=3
.Cells(LastRow, "A").Value = Cells(Regel, "A").Value
.Cells(LastRow, "B").Value = Cells(Regel, "B").Value
For x = 1 To Cells(Regel, Kolom).Value
LastRow = LastRow + 1
.Cells(LastRow, "C").Value = x
Next x
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.