Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Bestandsmap zoeken en eventueel aanmaken  (gelezen 2006 keer)

0 leden en 1 gast bekijken dit topic.

Offline daghengst

  • Lid
  • *
  • Berichten: 11
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Bestandsmap zoeken en eventueel aanmaken
« Gepost op: 12 april 2022, 11:41:17 »
Beste allen,

In ons bedrijf maken de calculators ordermappen aan voor de orders, die worden opgebouwd met ordernummer, klantnaam en eventueel vestigingsnaam. Leidend daarbij is het ordernummer omdat dat uniek is.

Is het mogelijk om Excel met een VBA code te laten zoeken naar bestaande bestandsmappen? Ordernummer staat in een cel in het bestand. Indien een bestandsmap wordt gevonden dient het bestand in die map – als Excel bestand én als pdf –  op te worden geslagen en mocht de map nog niet zijn aangemaakt om dan een nieuwe bestandsmap aan te maken met nummer, klantnaam en vestiging en het bestand erin opslaan als Excel bestand en als pdf.

Het dilemma in deze is dat de één de mappen met ordernummer inclusief bedrijfsnaam benoemt en een ander met ordernummer en contactpersoon, terwijl het toch één en dezelfde order betreft.

Ik heb een voorbeeldbestand toegevoegd.

PS: deze vraag is ook reeds gesteld bij helpmij.forum / zie https://www.helpmij.nl/forum/showthread.php/963961-Bestandsmap-zoeken.

Bij voorbaat dank, Hans

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #1 Gepost op: 12 april 2022, 12:10:35 »
Dag Hans,

Welkom op Oplossing.be :)

fijn dat je de dubbelpost gemeld heb, dat maakt het voor de helpers mogelijk om reacties die daar reds geplaatst zijn te lezen, en daardoor geen dubbel werk te moeten doen.

Zelf ben ik geen specialist. Verbeter mij als ik mis interpreteer:
In de map C:\Gebruikers\Documents staat er een map met een  ordernummer (=A1) in de naam, of er staat geen map met een ordernummer (=A1) in de naam.

Dit moet toch gemakkelijk te controleren zijn, als je enkel zoekt op numerieke waarden in de betreffende map-namen.

Staat er geen map met  ordernummer (=A1), dan maak je die map aan (als in E3).
Sla "dit bestand" daarin op, zowel als xlsm als in PDF.

Staat er wel een map met  ordernummer (=A1) dan maak je geen map aan.
Sla "dit bestand" daarin op, zowel als xlsm als in PDF.

Hopelijk volgt er snel hulp van de specialisten  :)

Groeten,

:) SoftAid :)             


Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline daghengst

  • Lid
  • *
  • Berichten: 11
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #2 Gepost op: 12 april 2022, 13:11:32 »
Hallo SoftAid,

Ja dat klopt, zo ver was ik ook al, echter als ik de naam wijzig van de klant met hetzelfde ordernummer maakt ie desondanks een nieuwe map terwijl het de bedoeling is dat ie in de map wat reeds bestaat verder opslaat.

Groetjes Hans

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #3 Gepost op: 12 april 2022, 13:36:10 »

Ja dat klopt, zo ver was ik ook al, echter als ik de naam wijzig van de klant met hetzelfde ordernummer maakt ie desondanks een nieuwe map terwijl het de bedoeling is dat ie in de map wat reeds bestaat verder opslaat.

Hans, kan je daar de VBA-code (liefst je eigen opvatting) even plaatsen in een voorbeeldbestand.

Thanks  :)

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline daghengst

  • Lid
  • *
  • Berichten: 11
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #4 Gepost op: 12 april 2022, 13:59:06 »
Hallo SoftAid,

ik dacht ik had een voorbeeldbestand al toegevoegd met de betreffende code maar kan het inderdaad niet terug vinden. maar bij deze


Offline daghengst

  • Lid
  • *
  • Berichten: 11
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #5 Gepost op: 12 april 2022, 14:00:46 »
En de verkeerde, nu wel de juiste

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #6 Gepost op: 12 april 2022, 14:29:42 »
Hallo daghengst,

de macro een klein beetje aangepast, en dan maakt hij netjes de map 22009999-daghengst aan in Mijn Documenten.

Dat mail-stuk even er tussen uit gelaten, als je te veel problemen in een keer meld dan wordt het onoverzichtelijk.
Ook een variabele benoemen voor éénmalig gebruik lijkt me onnuttig.


Na een test hier:

De macro doet precies wat je hem wilt laten doen.
Bestaat de map nog niet, dan wordt de map aangemaakt.
Bestaat de map wel, dan wordt huidig bestand opgeslagen als PDF in die map.
Opslaan als Excel zet je net onder de regel om pdf aan te maken

Zie bijlage:

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline daghengst

  • Lid
  • *
  • Berichten: 11
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #7 Gepost op: 12 april 2022, 14:43:33 »
Hallo SoftAid,

ik heb het hier ook nog eens geprobeerd, hij maakt inderdaad een nieuwe map aan. Maar als ik daarna ordernummer ongemoeid laat en wel de klantnaam aanpas en de macro nog eens laat lopen maakt ie een nieuwe map aan met een identiek ordernummer maar een andere klantnaam. En dat is net wat ik bedoel te bereiken, de macro moet dan - met een andere klantnaam, maar wel hetzelfde ordernummer - ook in die ene map opslaan. En dat lukt mij tot nu toe niet.

De reden hiervoor is dat het ordernummer uniek is voor een werk maar de collega's de klantnaam anders noteren.


Groetjes Hans

Offline Haije

  • Excel-Expert
  • Volledig lid
  • *****
  • Berichten: 197
  • Geslacht: Man
  • Oplossing.be
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #8 Gepost op: 12 april 2022, 14:58:17 »
Hans,

is het niet veel eenvoudiger om op te slaan in een map die alleen het ordernummer bevat?
|-|aije

ik gebruik Office 2016 Professional Plus

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #9 Gepost op: 12 april 2022, 14:59:36 »
Haije,

Dat was mijn gedacht ook.

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline daghengst

  • Lid
  • *
  • Berichten: 11
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #10 Gepost op: 12 april 2022, 15:13:39 »
Ja misschien is dat ook wel zo. Helaas is dat voor de herkenbaarheid niet zo makkelijk.

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #11 Gepost op: 12 april 2022, 15:20:49 »
daghengst,

zoals ik het ook zie is elk project uniek. dus zou je één hoofdmap moeten hebben voor dat project met zijn uniek ordernummer.
In die hoofdmap kan je dan alle bestanden opslaan met de ordernummer-gebruiker (-.xlsm en .pdf)

Hoe zie jij dat je mappen en bestanden uiteindelijk er uit moeten zien.

Maak eens een boomstructuur van je Mijn Documenten\22009999\ ........\......... in een excel werkblad.

:) SoftAid :)             
 
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline daghengst

  • Lid
  • *
  • Berichten: 11
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #12 Gepost op: 12 april 2022, 15:44:07 »
Er worden in de hoofdmap geen submappen meer aangemaakt. In de hoofmap komen alle orderdocumenten vanaf de calculatie t/m oplevering met uitzondering van fakturen, etc. Ook worden er kopiën in opgeslagen van mailverkeer.

Waar het mij om gaat is dat de macro mooi een nieuwe map aanmaakt maar dat niet moet doen wanneer er reeds een map is aangemaakt met een willekeurige naam achter het ordernummer.

Als er bijv reeds een map bestaat met de naam: C:\...\22009999-daghengst\ en ik zou een typefout maken in het document waardoor ie zoekt op map 22009999-dakhengst zou het bestand toch in de map met ordernummer 22009999 geplaatst moeten worden welk reeds bestaat en niet een nieuewe map aanmaken met de naam  C:\...\22009999-dakhengst\

Offline Haije

  • Excel-Expert
  • Volledig lid
  • *****
  • Berichten: 197
  • Geslacht: Man
  • Oplossing.be
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #13 Gepost op: 12 april 2022, 16:36:37 »
En dat met die tikfout voorkom je nou net door alleen het ordernummer als mapnaam te gebruiken.
En anders moet je de volledige mapnaam afdwingen
|-|aije

ik gebruik Office 2016 Professional Plus

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: Bestandsmap zoeken en eventueel aanmaken
« Reactie #14 Gepost op: 13 april 2022, 20:49:13 »
De macro die ik je op helpmij heb gegeven zou moeten werken.
Als er ergens een overeenkomend nummer in de naam staat, wordt er geen nieuwe map aangemaakt.

Toch adviseer ik je ook een uniek nummer te gebruiken per klantnaam.

Sub jec()
 Dim baseFolder, newFolder, strFold
 baseFolder = "C:\Users\xx\xxx\xx\"
 newFolder = ActiveSheet.Range("BA6")
 
 Application.DisplayAlerts = False
 
 With CreateObject("vbscript.regexp")
   .Global = True
   .Pattern = "\b\d{8}\b"
    If Not .test(newFolder) Then
        MsgBox "Foldername does not contain any ordernumber", vbOKOnly, "Pay attention"
        Application.DisplayAlerts = True
        Exit Sub
    End If
    strFold = Dir(baseFolder & "*" & .Execute(newFolder)(0) & "*", 16)
    With ThisWorkbook
      If strFold = "" Then
         MkDir newFolder
        .SaveAs newFolder & .Name, 52
      Else
        .SaveAs baseFolder & strFold & "\" & .Name, 52
      End If
    End With
 End With
 Application.DisplayAlerts = True
End Sub

 


www.combell.com