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

VBA script werkt niet

  • Onderwerp starter Onderwerp starter ROSO
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ROSO

Gebruiker
Lid geworden
4 nov 2009
Berichten
89
Kan iemand mij helpen met het volgende VBA- Script.
Ik wil deze script gebruiken in Excel 2003 (NL) maar ik iedere keer Fout 9 het subscript valt buiten bereik :(.

alvast bedankt.

Met de volgende macro worden twee lijsten met elkaar vergeleken en worden items in de tweede lijst verwijderd als ze ook in de eerste lijst (de hoofdlijst) staan. De eerste lijst staat op Blad1 in het bereik D2:A10. De tweede lijst staat op Blad2 in het bereik D1:D100Je kan de macro gebruiken door een van de beide werkbladen te selecteren en de macro uit te voeren.

Sub DelDups_TwoLists()
Dim iListCount As Integer
Dim iCtr As Integer

' Turn off screen updating to speed up macro.
Application.ScreenUpdating = False

' Get count of records to search through (list that will be deleted).
iListCount = Sheets("sheet2").Range("D1:D100").Rows.Count

' Loop through the "master" list.
For Each x In Sheets("Sheet1").Range("D2:D10")
' Loop through all records in the second list.
For iCtr = 1 To iListCount
' Do comparison of next record.
' To specify a different column, change 1 to the column number.
If x.Value = Sheets("Sheet2").Cells(iCtr, 1).Value Then
' If match is true then delete row.
Sheets("Sheet2").Cells(iCtr, 1).Delete xlShiftUp
' Increment counter to account for deleted row.
iCtr = iCtr + 1
End If
Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub
 
Als je een nl excel hebt moet je wel de namen Sheet1 en Sheet2 wijzigen in Blad1 en Blad2.

Joske
 
Heb ik ook gedaan blijf het zelfde error houden:confused:
 
Welke regel kleurt geel als je de foutmelding krijgt ? Voeg anders eens een voorbeeldbestandje toe met je macro en de te doorzoeken gegevens (als deze niet vertrouwelijk zijn natuurlijk)
 
ROSO,

Turn off screen updating to speed up macro
Volgens mij is dit enkel om het flikkeren van het scherm tegen te gaan en niet voor de snelheid.
De volgende keer moet je de code selecteren en dan op # klikken(Dan staat de code tussen tags.
 
Code:
Sub DelDups_TwoLists()
Dim iListCount As Integer
Dim iCtr As Integer

' Turn off screen updating to speed up macro.
Application.ScreenUpdating = False

' Get count of records to search through (list that will be deleted).
iListCount = Sheets("sheet2").Range("[COLOR="Red"]D1:D100[/COLOR]").Rows.Count

' Loop through the "master" list.
For Each x In Sheets("Sheet1").Range("[COLOR="#ff0000"]D2:D10[/COLOR]")
' Loop through all records in the second list.
For iCtr = 1 To iListCount
' Do comparison of next record.
' To specify a different column, change 1 to the column number.
If x.Value = Sheets("Sheet2").Cells(iCtr, 1).Value Then
' If match is true then delete row.
Sheets("Sheet2").Cells(iCtr, 1).Delete xlShiftUp
' Increment counter to account for deleted row.
iCtr = iCtr + 1
End If
Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub

Joske
 
Welke regel kleurt geel als je de foutmelding krijgt ? Voeg anders eens een voorbeeldbestandje toe met je macro en de te doorzoeken gegevens (als deze niet vertrouwelijk zijn natuurlijk)

eerste regel kleurde geel.

Ik heb een test bestand gemaakt a1 naam b1 c1 d1 Nummers en moet d2 (Nummers) moet ie gaan vergelijken

Ps deze script heb ik van http://support.microsoft.com/kb/291320/nl
 
Laatst bewerkt:
ROSO,


Volgens mij is dit enkel om het flikkeren van het scherm tegen te gaan en niet voor de snelheid.
De volgende keer moet je de code selecteren en dan op # klikken(Dan staat de code tussen tags.

Het flikkeren stopt. En omdat het scherm niet iedere keer bijgewerkt wordt is de macro ook sneller. Kan heel veel schelen
Als je geen Selects in je code gebruikt dan werkt het nog sneller en dan heb je ook geen last van flikkeren van het scherm

Ron
 
Code:
Sub DelDups_TwoLists()
Dim iListCount As Integer
Dim iCtr As Integer

' Turn off screen updating to speed up macro.
Application.ScreenUpdating = False

' Get count of records to search through (list that will be deleted).
iListCount = Sheets("sheet2").Range("[COLOR="Red"]D1:D100[/COLOR]").Rows.Count

' Loop through the "master" list.
For Each x In Sheets("Sheet1").Range("[COLOR="#ff0000"]D2:D10[/COLOR]")
' Loop through all records in the second list.
For iCtr = 1 To iListCount
' Do comparison of next record.
' To specify a different column, change 1 to the column number.
If x.Value = Sheets("Sheet2").Cells(iCtr, 1).Value Then
' If match is true then delete row.
Sheets("Sheet2").Cells(iCtr, 1).Delete xlShiftUp
' Increment counter to account for deleted row.
iCtr = iCtr + 1
End If
Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub

Joske

Ik heb range verandert werkt alleen al ik bv A.. : A.. range maar niet op D.. range

"For Each x In Sheets("Sheet1").Range("A2:A10")"
Hoe kan ik deze regel veranderen dat ie niet alleen op A range herkent maar ook op D range (bv D2:D10)




Bedankt Joske:confused:
 
Laatst bewerkt:
Code werkt

:) Dankzij snb en wigi werkt deze code naar behoren, bedankt een ieder voor zijn/haar moeite.:D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan