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

Map maken na aanmaak klant

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

DAR12

Gebruiker
Lid geworden
7 sep 2020
Berichten
16
Hallo,

Ik ben nieuw op dit forum.
Zit met een vraag, wat voor jullie een eitje is waarschijnlijk.
Heb namelijk een Excel bestand waar we ons klantenbestand van willen maken.
Nu willen we voor elke klant een map maken in de c schijf.
Mijn vraag is of dat automatisch kan?
Wat de bedoeling is, is het volgende:
We hebben in kolom A de klantnummers staan.
In kolom E de achternaam.
In kolom J staat de plaats.
Als we de gegevens ingevuld hebben willen we een knop in kunnen drukken waarmee het volgende gebeurd:
Er wordt een nieuwe map aangemaakt in de c schijf in de map klanten.
Deze map moet de volgende naam krijgen: "Klantnummer" gevolgd door een spatie en dan de Achternaam" gevolgd door een spatie en dan de "plaats"
Vervolgens zouden wij graag de link naar deze map in de de kolom B willen terug zien, zodat we weten dat de map aangemaakt is en we snel naar de documenten van de klant kunnen gaan.
Kan dat door een cel in de regel van de nieuwe klant te selecteren en dan op de knop "map aanmaken" te gebruiken?
Of is er een handigere manier?

In de bijlage een bestand met fictieve namen

Weten jullie hier iets op?
Ben zelf aardig leek op gebied van VBa

Alvast bedankt!
 

Bijlagen

Laatst bewerkt:
Eerst rij 6 verwijderen. En vervolgens deze code uitvoeren.

Code:
Sub VenA()
  c00 = "C:\Klanten\"
  If Dir(c00, 16) = "" Then MkDir c00
  ar = Cells(5, 1).CurrentRegion
  For j = 2 To UBound(ar)
    c01 = c00 & ar(j, 1) & "_" & ar(j, 6) & "_" & ar(j, 10)
    If Dir(c01,16) = "" Then
      MkDir c01
      Cells(j + 4, 2) = c01
      ActiveSheet.Hyperlinks.Add Cells(j + 4, 2), c01
    End If
  Next j
End Sub
 
Laatst bewerkt:
Beste Ven A,

Hartelijk dank voor je snelle code.
Heb het erin gezet en werk, alleen een beetje te goed.:D
Hij maakt namlijk gelijk alle 2000 mappen aan.
Weet je daar ook wat op?

Alvast bedankt!
 
Eerst alles invullen en dan de mappen aanmaken. Controleren of alle gegevens ingevuld zijn en dan de mappen aanmaken. Dmv een change event een nieuwe map aanmaken. Handmatig een map aanmaken. Mogelijkheden voldoende. In de code in #2 staan de belangrijkste ingrediënten.
 
Beste,

Het is juist de bedoeling dat als er een nieuwe klant zich meld ik deze aan kan maken en met 1 druk op de knop voor hem een map gemaakt wordt en een link naar die map.
Dat is elke keer weer een heel gedoe anders.
Is daar geen mogenlijkheid voor?
 
Dmv een change event een nieuwe map aanmaken
Volgens mij kan je beter eens kijken naar een userform en een andere opzet. (Is voldoende over te vinden op deze site.)
 
Snap wat je bedoeld maar ben echt leek op dit gebied.
Begrijp wel dat je dan voor een specifieke klant een map aan kan maken na bevestigen.
Alleen geen idee hoe dit te maken.
Als we voornaam, tussenvoegsel, achternaam, straat, huisnummer , postcode, plaats en emailadres hebben zijn we compleet.
Maar hoe maak je dat?
 
Code:
Sub MapAanmaak()
Dim Folder As String
c00 = "C:\Klanten\"
ar = Cells(7, 1).CurrentRegion
    For j = 7 To 6 + UBound(ar)
    c01 = c00 & Cells(j, 1).Value & "_" & Cells(j, 6).Value & "_" & Cells(j, 10).Value
    Folder = Dir(c01, vbDirectory)
        If Folder = vbNullString Then
                MkDir c01
                Cells(j, 2) = c01
                ActiveSheet.Hyperlinks.Add Cells(j, 2), c01
        End If
    Next j
End Sub
Maakt alleen map aan als deze er nog niet is.
 
Laatst bewerkt:
Hoi BikerBill64

Dank voor het meedenken.
Ik heb het code gebruikt maar deze maakt ook voor alle klanten een map aan.
Ook diegene die nog helemaal niet ingevuld zijn.
Als ik later de klant in vul kan ik geen map meer maken.
Het is de bedoeling dat het code nagaat of er een klant ingevuld is en alleen voor die regels een map maakt die ook daadwerkelijk zijn voorzien van klantgegevens.
Wel super dat dit code kijkt of er al een map van eerder aangemaakte klanten is zodat er geen 2 mappen van 1 klnat aangemaakt wordt.
In het voorbeeld dat ik gestuurd heb zijn maar 2 klanten aangemaakt.
Als ik de knop indruk zou er dus alleen voor deze klanten een map en link aangemaakt moeten worden.
Vul ik later weer gegevens in van een nieuwe klant en druk op de knop dan is de bedoeling dat hij dan alleen voor deze nieuw aangemaakte klant een map en link aangemaakt wordt.

Hoop dat ik het duidelijk uitgelegd heb.
Anders hoor ik het graag.
 
Beste BikerBill64,

Hartelijk dank voor je bestand.
Dit is helemaal wat ik zoek!

Echt een super ding.
Nogmaals hartelijk bedankt!!
 
Mooie oplossing.:thumb:
 
Iets andere opzet.
Maak er een echte tabel van.
Met dubbelklick op een klantnummer open je de Map.
 

Bijlagen

Laatst bewerkt:
Als je toch gebruik maakt van een tabel dan

Code:
Private Sub UserForm_Initialize()
  TextBox1.Value = Sheets("Klanten").ListObjects(1).ListRows.Count + 10001
End Sub
 
@VenA,

Wat als het klantenbestand na verloop van tijd/jaren wordt opgeschoond?
Dan is de code in #14 toch beter.
 
En wat als bij het opschonen ook het laatste nummer verwijderd wordt? Klopt je max ook niet meer.
 
Zie net dat er nog wat berichten zijn binnen gekomen.
Hartelijk dank daarvoor.
Wel heb ik nog een vraag
Wat is het voordeel van het werken in een tabel ten opzichte van de eerdere oplossing?
Of maakt dat niet uit?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan