soort van vertikaal zoeken in VBA

Status
Niet open voor verdere reacties.

jajajajanneke

Gebruiker
Lid geworden
16 jan 2008
Berichten
58
Hoi,

Ik ben aan het denken en rommelen en steeds gefrustreerder aan het raken maar het lukt me niet....

Een aantal obstakels heb ik al overwonnen zoals als je in vba de opdracht geeft een .cvs bestand te openen geeft ie de waarden niet gesplitst in kolommen zoals excel dat zou doen als je het bestand op de normale manier via excel zou openen... vond het al knap van mezelf dat dat gelukt is hahaha

Wie kan me aan het handje meenemen en zoeken naar de juiste code?

Hierbij 2 voorbeeldbestandjes (de échte bestanden zijn tot aan de nok toe gevuld met data) waarin ik in de module in doelbestand.xls e.e.a. uitleg:

Bekijk bijlage doelbestand.xls Bekijk bijlage tijdelijk.xls

STAP1 in de module werkt al maar die kun je niet testen omdat er verwijzingen naar netwerkschijven in zitten

en stap 2 krijg ik niet voor elkaar.

Wie kan/wil je me helpen?

P.s. ik werk met office 2003 (ja lach me maar uit maar de baas is nog niet een nieuwe investering toe)

Alvast bedankt!!!!

Groetjes,
Janneke
 
Probeer goed uit te denken wat je wilt bereiken, en welke stappen je daar minimaal voor nodig hebt
Het is belangrijk dat je een helder plan voor ogen hebt van wat er precies moet gebeuren.

Ik kan er niet helemaal chocola van maken wat je precies wilt bereiken.
Kun je iets duidelijker zijn wat precies je doel en je plan is?

Gr,
Mark

ps. er is niets mis met Excel 2003
 
Hoi,

Sorry, ik had inderdaad iets duidelijker moeten zijn.
Ik zal zo duidelijk mogelijk prberen uit te leggen wat ik wil.

Ik wil het effect van vertikaal zoeken krijgen.
In beide bestanden staan debnrs (kolom A).
Nu wil ik in 'doelbestand' in kolom B achter het debnr in een bepaalde rij als output krijgen wat er in 'tijdelijk' in de rij van het desbetreffende debnr in kolom L staat.
De output wordt dan een A of een V.
En dit wil ik herhalen voor alle rijen waarvan kolom A gevuld is.

In de praktijk houdt het in dat ik wekelijks kijk of de klanten in mijn doelbestand actief (dus A) zijn of vervallen (V).

Trouwens,
De eerste sub (StatusCheckStap1) in module1 van 'doelbestand' ziet er wat raar uit maar het idee daar achter is dat er elke dag een dumpbestand op een bepaalde schijf in het netwerk wordt gezet die elke dag in zijn bestandnaam de datum van die betreffende dag heeft. Ik genereer met de eerste sub puur dat het dumpbestand van die dag geopend wordt en van .csv als .xls wordt opgeslagen zodat ik de volgende sub zonder problemen kan uitvoeren.
Vervolgens zorg ik in die eerste sub dat in 'doelbestand' cel B2 (waar de eerste output moet komen) geselecteerd is.
Maar deze eerste sub werkt al en daar hoef je dus niet naar te kijken.


Ik hoop dat het zo wat duidelijker is.

Groetjes,
Janneke
 
Zoals ik het begrijp een eerste aanzet. Tijdelijk.xls moet wel geopend zijn alvorens de macro te starten. Eventueel kan er nog een check toegevoegd worden die dit controleert en desnoods het bestand opent.
Code:
Sub StatusCheckStap2EERSTEAANZET()
On Error Resume Next
With Sheets("Basis")
    For Each cl In .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
        cl.Offset(, 1) = Workbooks("Tijdelijk.xls").Sheets("EXPDEB" & Format(Date, "yymmdd")).Columns(1) _
                .Find(cl.Value, , xlValues, xlWhole).Offset(, 11).Value
    Next
End With
End Sub
 
Hoi,

Ik kan geen chocola van je code maken maar ach na een 3-daagse cursus kun je ook niet alles weten...

maar erger is dat ie niks doet... hioj geeft geen foutmelding maar ook geen output...
 
Zo dan maar?

Code:
Sub StatusCheckStap1()
Dim myRegion As Range
Dim myRowCount As Long

    datum = Format(Date, "yymmdd")
  
    ActiveWorkbook.FollowHyperlink "G:\legmisfiles\vest11\user\EXPDEB" & datum & ".csv", NewWindow:=True
    ActiveWorkbook.SaveAs "H:\Mijn Documenten\Doelstellingen 2011\PETROL LOW\tijdelijk.xls"
    
    Set myRegion = ActiveWorkbook.Sheets(1).Range("A1").CurrentRegion

    Windows("doelbestand.xls").Activate
    
    With Sheets("BASIS")
        
        myRowCount = .Range("A1").CurrentRegion.Rows.Count - 1
    
        .Range("B2").Formula = "=VLOOKUP(A2,'tijdelijk.xls'!" & myRegion.Address & ",12,0)"
        .Range("B2").Resize(myRowCount).FillDown
    
    End With
    
    Set myRegion = Nothing
    
End Sub

Stap 2 en 3 kan je overslaan
 
Laatst bewerkt:
Bij mij werkt dit nochtans perfect.
Zorg ervoor dat beide bestanden geopend zijn en dat het werkblad in Tijdelijk.xls EXPDEB110714 noemt (de naam+ datum van vandaag)
Doelbestand moet het actieve bestand zijn als je de code draait
 
Laatst bewerkt:
HIJ DOET HET!!!!

(ondanks dat het tabblad in bestand 'tijdelijk' ook 'tijdelijk' is gaan heten)

Ik snap echt geen bal van die hele code maar hij werkt!

Super bedankt!

Groetjes,
Janneke
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan