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

Zoeken op de map waar het bestand staat vervolgens verticaal zoeken

Status
Niet open voor verdere reacties.
Dat had ik inmiddels gedaan, excel gaf daar ook een foutmelding.

Ik heb nog even een andere vraag:

Bij onderstaande code kun je per woord aangeven wat je in het pad wil hebben staan, heel erg handig vind ik, echter kan deze niet een volledige directory (map) vermelden. Weet iemand hoe dat moet?

Code:
Public Function locatie()
Dim WrdString As String
 Dim text_string As String
  text_string = Replace(ThisWorkbook.FullName, "\", " ")
   WrdString1 = Split(text_string)(1)
   WrdString2 = Split(text_string)(2)
   WrdString3 = Split(text_string)(3)
   Schijf = CreateObject("scripting.filesystemobject").GetDriveName(ThisWorkbook.FullName)
locatie = Schijf & "\" & WrdString1 & "\" & WrdString2 & "\"
End Function
 
Die gaf deze nadat ik het gepost had, anders had ik het vanzelfsprekend vermeld. Ik begrijp dat jullie echt jullie best doen om mij te helpen en ik voel het als mijn plicht jullie zo goed mogelijk te informeren. Mijn verontschuldiging hiervoor..
 
Ik ben de draad kwijt van waar je nu in je probleem zit en na je opmerking in #19 heb ik geen foutmelding van je gezien.
 
Ik zelf ben ook een beetje de draad kwijt omdat de code in ThisWorkbook mij totaal niets zegt en ik ben gaan freewheelen. Ik kom hier morgen graag op terug, op dit moment zie ik helemaal geen verbanden meer. In ieder geval heel erg bedankt tot nu toe...
 
Die functie die je in #21 plaatste kan ik wel voor je verklaren:
Code:
Public Function locatie()
    Dim WrdString As String
    Dim text_string As String

    [COLOR="#008000"]'Thisworkbook.Fullname geeft bijvoorbeeld C:\Users\Robert\Documenten\Map1.xlsm
    'Hier wordt het \ in die string vervangen door een spatie[/COLOR]
    text_string = Replace(ThisWorkbook.FullName, "\", " ")

    [COLOR="#008000"]'De functie Split splitst de string in stukken op de plekken waar een spatie staat[/COLOR]
    WrdString1 = Split(text_string)(1) [COLOR="#008000"]'Wordt dan Users[/COLOR]
    WrdString2 = Split(text_string)(2) [COLOR="#008000"]'Wordt dan Robert[/COLOR]
    WrdString3 = Split(text_string)(3) [COLOR="#008000"]'Wordt dan Map1.xlsm[/COLOR]

    [COLOR="#008000"]'Dit is dan niet nodig om de schijf op te halen want die is er al.
    'Schijf = CreateObject("scripting.filesystemobject").GetDriveName(ThisWorkbook.FullName)
    'Daarvoor kan je dan dit gebruiken:[/COLOR]
    WrdString(0) = Split(text_string)(0) [COLOR="#008000"]'Wordt dan C:[/COLOR]

    [COLOR="#008000"]'Uiteindelijk plak je de handel weer aan elkaar en vervang je het gebruiker gedeelte:[/COLOR]
    locatie =  WrdString(0) & "\" & WrdString1 & "\" "It's Amazing" & "\"
End Function

Overigens kan dat een stuk eenvoudiger geschreven worden door een array te gebruiken:
Code:
Function locatie()
    Dim FullName() As String
    FullName = Split(ThisWorkbook.FullName, "\")
    locatie = FullName(0) & "\" & FullName(1) & "\" & "It's Amazing" & "\"
End Function
 
Laatst bewerkt:
Bedankt voor de heldere uitleg :thumb:

Die laatste code werkt perfect en is idd korter.

Omdat ik vanuit één pc mijn administratie deed werkte alles eigenlijk prima, maar nu ik regelmatig achter een ander pc zit, kom ik allemaal problemen tegen t.a.v. het zoekpad in combinatie met dropbox. Nu weet ik niet of daar een (simpele) oplossing voor is. Wat sowieso mogelijk is dat ik zorg dat de bestanden - waar naar gezocht wordt -gewoon in dezelfde map staan of eventueel een map hoger. Volgens mij ben ik dan ook klaar. Alleen is mijn vraag; hoe herschrijf ik onderstaande regel? Graag twee alternatieven nl.: wanneer in dezelfde map gezocht moet worden en wanneer in een hogere map; stel "Debiteurenadministratie"

HTML:
    If WB2 Is Nothing Then
        Set WB2 = Workbooks.Open(Filename:="C:\Users\Gebruiker\Dropbox\Cashflow Control\Boekhouding klanten\00. Testmap\DebiteurenOverzicht.xlsm")
    End If
 
Gebruik je op die andere PC's dezelfde inlognaam als op je eigen PC?
 
Ja, ik werk met 3 pc's (twee van mijzelf) en één van mijn partner (die overigens ook de administratie doet)
 
Dan hoef je dus alleen het gebruiker gedeelte flexibel te maken:
Code:
If WB2 Is Nothing Then
    Set WB2 = Workbooks.Open(Filename:= Environ("userprofile") & "\Dropbox\Cashflow Control\Boekhouding klanten\00. Testmap\DebiteurenOverzicht.xlsm")
End If
 
Dat werkt helemaal goed.

Nu ik dan toch maar verder ga met jouw methodiek, hoe pas ik onderstaande regel dan aan? Hier staat de foutmelding: "#WAARDE!"

Code:
=VERT.ZOEKEN(A2;Profielmap()&'\Dropbox\Cashflow Control\Klantbeheer\[Klantbeheer.xlsm]Invulblad'!$A$3:$B$10000;2;ONWAAR)

Pad (derde pc)
C:\Users\rembr\Dropbox\Cashflow Control\Klantbeheer
 
Ik heb dat niet getest. De functie is op zich goed maar volgens Timshel gaat dat op die manier niet werken.
Ga dus te werk volgens zijn instructies in #16.
 
Sorry, ik kom er niet uit en begrijp de code ook niet en dan wordt het lastig om op die code verder te borduren. Mijn enige oplossing is dat ik bestanden hoger in het pad zet, dan kan het systeem kijken naar de huidige map met een verwijzing naar de map waar het betreffende bestand staat.

=VERT.ZOEKEN(A10;'C:\Users\Gebruiker\Dropbox\Cashflow Control\Klantbeheer\[Klantbeheer.xlsm]Invulblad'!$A$3:$B$10000;2;ONWAAR)

M.a.w. kan bovenstaande formule worden aangepast dat het systeem 1: in dezelfde map zoekt naar het bestand "Klantbeheer.xlsm" en 2: dat het systeem kijkt in de actieve map maar dan een map hoger dus: "\klantbeheer\klantbeheer.xlsm

Alvast heel erg bedankt

Mvg
Robert
 
Wat jij wil kan niet bereikt worden met formules.
Dit is een beperking in Excel.
Een oplossing zou kunnen zijn om in plaats van dropbox een bestandsservertje te gebruiken.
 
Laatst bewerkt:
Bedankt voor de tip, helaas reikt mijn kennis niet voldoende om te weten hoe ik dat moet doen.

Is het ook mogelijk om die formules in een vba-code te zetten en dat ze alleen van toepassing zijn voor een 6-tal cellen waar ik voornoemde formules voor gebruik? Volgens mij moet ik er dan ook zijn :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan