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

Vertikaal zoeken this sheet

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

HWV

Terugkerende gebruiker
Lid geworden
19 feb 2009
Berichten
1.213
Beste,

ik gebruik onderstaande code voor het verticaal zoeken met VBA.
Dit werkt goed, enkel ik wil deze gaan gebruiken maar mijn sheetnamen zijn elke keer anders.
Kan ik iets van "this sheet" inbouwen, maar dat lukt mij niet.

Dus het moet geplaatst worden in "this sheet", en gezocht met worden in Workbooks("GST1- Eenheden1.xls").Sheets("Artikelen")
Code:
Sub vertZoek ()
On Error Resume Next
   For j = 2 To Sheets("Verkochte artikelen").Cells(Rows.count, 1).End(xlUp).Row
    With Workbooks("GST1- Eenheden1.xls").Sheets("Artikelen").Columns(1).Find(Sheets("Verkochte artikelen").Cells(j, 1).Value)
      .Offset(, 6).Copy Sheets("Verkochte artikelen").Cells(j, 2)
    End With
  Next
End sub

Alvast dank voor de aangeboden hulp.

HWV
 
this sheet bestaat niet ActiveSheet wel en voor de rest ik geen flauw idee wat je wilt bereiken.
 
Laatst bewerkt:
Zodra een routine al begint met On Error Resume Next haak ik af.
 
Aangepast

Beste,


Code:
   For j = 4 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
    With Workbooks("GST1- Eenheden.xls").Sheets("Data1").Columns(1).Find(ActiveSheet.Cells(j, 4).Value)
      .Offset(, 14).Copy ActiveSheet.Cells(j, 12)
    End With
  Next

Ik heb de code aangepast en hij pakt nu het ActiveSheet en de juiste kolommen, helaas krijg ik nog wel een foutmelding.
Zal er morgen verder in duiken, zelfs met de on error resume next loopt het vast.

HWV
 
helaas krijg ik nog wel een foutmelding
Denk je niet dat het handig is om te zeggen wat de foutmelding is.
(een gelijkend vb bestandje waar de foutmelding zich voordoet posten kan ook helpen)
En haal die on error ... eruit en probeer via F8 te achterhalen waar er iets fout loopt.
 
zonder voorbeeldbestand een poging:

Code:
If Not Workbooks("GST1- Eenheden.xls").Sheets("Data1").Columns(1).Find(ActiveSheet.Cells(j, 4).Value) Is Nothing Then
        For j = 4 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
            With Workbooks("GST1- Eenheden.xls").Sheets("Data1").Columns(1).Find(ActiveSheet.Cells(j, 4).Value)
                .Offset(, 14).Copy ActiveSheet.Cells(j, 12)
            End With
        Next
End If

Ik gok dat waarden niet worden gevonden en dan krijg je de "FOUT 91" waarschijnlijk.
 
Laatst bewerkt:
Als je zegt een foutmelding te krijgen, vertel er dan ook bij welke dat is en op welke regel.
SjonR doet een goede poging maar het is niet de enige mogelijkheid.
 
nee, vandaar het gokken, maar ik zal het ook wel fout hebben want met de Lotto win ik ook geen moer :)
 
Je hebt volledig gelijk Philiep, het is om te janken.
 
Raar maar werkt wel via de server

Beste,

Bedankt voor de reactie.

Ben nu thuis even verder gegaan, en nu via de server geen probleem :mad:
Maar goed ben blij dat het werkt, maar zoals altijd komt er weer een ander iets waar je tegenaan loopt,

Code:
For j = 4 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
    With Workbooks("GST1- Eenheden.xls").Sheets("Data1").Columns(1).Find(ActiveSheet.Cells(j, 4).Value)
      .Offset(, 14).Copy ActiveSheet.Cells(j, 12)
     [COLOR="#FF0000"] .Offset(, [COLOR="#000000"]20[/COLOR]).Copy ActiveSheet.Cells(j, 5)[/COLOR] (ik wil 20, 21 en 22 samenvoegen met een spatie ertussen)
    End With
  Next

Nu wil ik het rode gedeelte uitbreiden.
de waarde van .Offset(, 20).Copy ActiveSheet.Cells(j, 5) is omschrijving 1 en zo wil ik omschrijving 2 en omschrijving 3 samenvoegen.
zoals onderstaande waarde
omschrijving 1 omschrijving 2 omschrijving 3

Alvast dank
HWV
 
Het voorbeeldje plaatsen is blijkbaar niet gelukt?

Code:
ActiveSheet.Cells(j, 5) = .Offset(, 20) & " ".Offset(, 21)
 
detail, maar niet minder belangrijk:

Code:
ActiveSheet.Cells(j, 5) = .Offset(, 20) & " " [COLOR="#FF0000"]&[/COLOR] .Offset(, 21)
 
Geweldig

Beste,

Het is gelukt :

Code:
  For j = 4 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
    With Workbooks("GST1- Eenheden.xls").Sheets("Data1").Columns(1).Find(ActiveSheet.Cells(j, 4).Value)
      ActiveSheet.Cells(j, 12) = .Offset(, 14)
      ActiveSheet.Cells(j, 5) = .Offset(, 20) & " " & .Offset(, 21) & " " & .Offset(, 22)
    End With
  Next

Dank voor alle inzet, en zal er aan denken een volgende keer een voorbeeldbestand te plaatsen, wat voor mij heel duidelijk is kan (is) voor een andere onbegrijpelijk zijn.
Maar voor nu helemaal top !

HWV
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan