VBA Excel: Bestand "opslaan als" met een reeds bestaande bestandsnaam

Status
Niet open voor verdere reacties.

Lsmit96

Nieuwe gebruiker
Lid geworden
2 mei 2016
Berichten
4
Goedemiddag!

Ik ben aardig nieuw in het hele VBA gebeuren maar toch lukt het allemaal al redelijk. Nu zit ik even met een vraagje:
Ik heb een knop op mijn Excel blad gemaakt om het bestand op te slaan. Nu komt het betreffende bestand in de juiste map, met als naam een cijfercode uit een cel. Echter, het komt wel eens voor dat deze naam al bestaat. Daarom wil ik dat er achter elke code "-1" komt, en als deze naam al bestaat moet er "-2" achter komen te staan en eventueel ook -3 etc etc.... Veel verder dan -4 zal het niet komen, maar het zou handig zijn als het doorloopt. De code die ik tot nu toe heb is:

Code:
Sub OpslaanAls()

  Dim MyName
    MyName = Range("b13").Value & "" & Range("c13").Value & Range("d13").Value
    ChDir "C:\Users\Lars\Documents\Meetrapport"
   ActiveWorkbook.SaveAs Filename:=MyName & ".xls"
End Sub

Hopelijk kan iemand mij hiermee helpen!
B.v.d, Gr Lars.
 
Laatst bewerkt:
Als het bestand overschreven mag worden dan doe het maar eens op deze manier:
Code:
Sub OpslaanAls()
    Dim MyName As String
    Dim MyPath As String
  
    MyPath = "C:\Users\Lars\Documents\Meetrapport\"
    MyName = Range("b13").Value & "" & Range("c13").Value & Range("d13").Value
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=MyPath & MyName & ".xls"
    Application.DisplayAlerts = True
End Sub
 
Bedankt voor je reactie! Dit is alleen niet helemaal wat ik bedoel.. Ik zal het verder uitleggen.
Het betreft een Excel document voor meetrapporten voor producten. Soms wordt een product meerdere keren opgemeten. Daarom wil ik dat een meetrapport de naam uit een cel krijgt, met daarachter "-1". Als men vervolgens het zelfde product opnieuw meet, moet dit rapport in dezelfde map komen met dezelfde naam uit de cel, maar dan met "-2" erachter (oid). Het bestand moet dus niet overschreven worden.
 
Ok, dat kan ook. Hoe ziet zo'n bestandsnaam er in z'n geheel uit?
 
De bestandsnaam is een calculatienummer uit drie samengevoegde cellen b13 c13 en d13. Een voorbeeld is van de bestandsnaam is: "1601734-1"
Wanneer dit bestand dus al bestaat moet er nog een bestand komen met de naam: "1601734-2".
 
Gebruik er dit eens voor:
Code:
Pad = "C:\Users\Lars\Documents\Meetrapport\"
Bestand = "1601734-"
    
i = 1
Do Until Dir(Pad & Bestand & i & ".xls") = ""
    i = i + 1
Loop
    
Bestand = Bestand & i & ".xls"
 
Laatst bewerkt:
edmoor bedankt! Ik heb nu voor elkaar hoe ik het wou hebben. Maar nu kom ik bij een andere fout waar je mij hopelijk nog mee kan helpen..
Op mijn laptop werkt het allemaal goed. Maar als ik het op een laptop van het werk probeer, wordt t pad die ik gedefineerd heb genegeerd en slaat hij het rapport automatisch op in C:/Documents and Settings/Mijn documenten. Dit is namelijk de standaard opslaglocatie. Waarom negeert hij het pad uit de code??
 
Gebruik dit om flexibel te zijn:
Pad = Environ("USERPROFILE") & "\Documents\Meetrapport\"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan