• 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.

Regel invoegen als er aan een bepaalde criteria wordt voldaan

Status
Niet open voor verdere reacties.

perry99

Gebruiker
Lid geworden
3 feb 2007
Berichten
106
Hallo,

Ik heb een macro welke een regel invoegd op moment als in een range een gedeelte van een woord staat.
In dit geval is het KOMBINATIE.
Het invoegen van een regel lukt wel, echter wordt de rij op de verkeerde regel ingevoegd.
Nu wordt er een regel onder het woord Kombinatie ingevoegt, echter moet de regel boven het woord KOMBINATIE ingevoegd worden.

Code:
Sub StanSanOmzet()

Application.ScreenUpdating = False
Sheets("Blad1").Select

For Each B In Range("d7:d300")
If InStr((B.Formula), "KOMBINATIE") Then
B.Offset(1, 0).EntireRow.Insert (xlShiftDown)
End If
Next

Application.ScreenUpdating = True
   
End Sub

Heb een bestand bijgevoegd waarbij er een regel onder het woord KOMBINATIE wordt ingevoegd.

Ik hoop dat iemand van jullie mij hiermee kan helpen.

Als bedankt voor het meedenken.

Groetjes,

Perry :confused::confused::confused:

Bekijk bijlage regel invoegen.xls
 
offset moet dan -1 zijn.

Code:
B.Offset(-1, 0).EntireRow.Insert (xlShiftDown)


Maar volgens mij gaat het dan wel fout, want de volgende regel staat dan ook weer het woord KOMBINATIE omdat deze naar beneden schuift en je in een oneindige loop komt.

Niels
 
Laatst bewerkt:
Hallo Niels,

Alleereerst bedankt voor jouw reaktie.

Dat klopt inderdaad dat je dan in een oneindige loop terecht komt.

Ik hoop dat je mij kan helpen met de juiste oplossing hiervoor.

Nogmaals mijn dank voor het meedenken.

Groetjes,

Perry :confused::confused::confused:
 
Zonder te testen.

Code:
Sub StanSanOmzet()

Application.ScreenUpdating = False
Sheets("Blad1").Select

For B = 7 to 300
If InStr((cells(b,4).Formula), "KOMBINATIE") Then
cells(b,4).Offset(-1, 0).EntireRow.Insert (xlShiftDown)
b=b+1
End If
Next

Application.ScreenUpdating = True
   
End Sub

Niels
 
Bijna goed, Niels.
De offset(-1,0) moet er uit. Die regel wordt dan:
Code:
Cells(b, 4).EntireRow.Insert (xlShiftDown)
 
@ Zapatr,

Je hebt gelijk, best stom :o , (xlShiftDown) plaats hem al naar beneden.
Dank voor de opmerking.

Niels
 
(xlShiftDown) mag je eventueel ook weglaten, want dat is een standaardwaarde.
 
Hallo Niels en Zapatr,

Super, werkt als een speer.

Ontzettend bedankt voor het meedenken.

Gelukkig dat er hier altijd mensen zijn die andere met hun excel problemen willen helpen.

RESPEKT

Nogmaals mijn dank aan jullie.

Groetjes,

Perry :thumb::thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan