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

Code aanpassen

Status
Niet open voor verdere reacties.

Valentin

Gebruiker
Lid geworden
14 feb 2009
Berichten
80
Ik heb de volgende code die in alle bladen zoekt naar de naam van een land en de corresponderende bladen geeft als lijst.

Code:
Sub ZoekLand()
Dim ws As Worksheet
Dim found As Range
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
    If ws.Name <> ActiveSheet.Name Then
        Set found = ws.Range("A10:Q50").Find(what:=Range("C12").Value, LookIn:=xlValues, lookat:=xlPart)
        If Not found Is Nothing Then ActiveSheet.Range("BD" & Rows.Count).End(xlUp).Offset(1).Value = ws.Name
    End If
Next ws
Application.ScreenUpdating = True
End Sub

Wat ik echter tracht te bereiken is dat er gezocht word vanaf het blad volgend op het blad "Menukeuze" tot en met het laatste blad.
 
Je kunt de huidige code aanpassen om pas te starten wanneer "menukeuze" voorbij komt, of een gewone FOR gebruiken ipv een for each en die laten tellen vanaf "menukeuze" tot het max aantal sheets.

Code:
for i = sheets("menukeuze").index to sheets.count
   sheets(i).range .......
next i
 
Foutmelding

Krijg nu foutmelding na wijziging code (rood aangeduid)

Code:
For i = Sheets("menukeuze").Index + 1 To Sheets.Count

  [COLOR="#FF0000"] Sheets(i).Range("A47:A60").Find(what:=Range("C8").Value, LookIn:=xlValues, lookat:=xlPart)[/COLOR]

        If Not found Is Nothing Then ActiveSheet.Range("BB" & Rows.Count).End(xlUp).Offset(1).Value = ws.Name
    
Next i
 
Dat heeft waarschijnlijk te maken met de tweede range:

Code:
For i = Sheets("menukeuze").Index + 1 To Sheets.Count
   with sheets(i)
      set found = .Range("A47:A60").Find(what:= .Range("C8").Value, LookIn:=xlValues, lookat:=xlPart)

      If Not found Is Nothing Then ActiveSheet.Range("BB" & Rows.Count).End(xlUp).Offset(1).Value = .Name
   end with 
Next i
 
Code aangepast

Heb code nog een beetje aangepast en nu werkt het perfect

Code:
For i = Sheets("Menukeuze").Index + 1 To Sheets.Count
   With Sheets(i)
      Set found = .Range("A47:A60").Find(what:=[COLOR="#FF0000"]Sheets("Menukeuze")[/COLOR].Range("C8").Value, LookIn:=xlValues, lookat:=xlPart)

      If Not found Is Nothing Then ActiveSheet.Range("BB" & Rows.Count).End(xlUp).Offset(1).Value = .Name
   End With
Next i
Cells(1, 1).Select
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan