Automatisch overschrijven door macro opvangen met inputboxje

Status
Niet open voor verdere reacties.

Roughneck

Gebruiker
Lid geworden
29 mei 2007
Berichten
83
Dit probleempje komt uit het subforum Excel, maar misschien is het beter om de vraag, die wat ingewikkeld word, m.i. hier te stellen. Uiteindelijk is het resultaat van de eerste vraagstelling al bereikt, zoalsin het Excel-forum valt te lezen. Alleen omdat ik de macro per ongeluk nóg een keer uitvoerde, kwam ik in een situatie terecht, die echt opgelost zal moeten worden. Óf de macro loopt stuk, óf het reeds bestaand bestand word overschreven. Beide gevallen zijn niet acceptabel.

Na een nachtje wakker liggen:confused: heb ik een manier bedacht die zou kunnen werken, maar daar heb ik wél jullie (VBA-programmeurs) hulp bij nodig. In plaats van het programma (Excel) een naam te laten bedenken, wat misschien niet helemaal zo eenvoudig is, dacht ik dat onderstaande misschien wel een oplossing zou zijn:

wanneer het systeem ontdekt dat de bestandsnaam die bedacht is al bestaat, kan het dan een inputboxje presenteren, waarna de gebruiker zélf een toevoeging invult? Het eerste deel van de bestandsnaam, zoals ie bedacht is door de macro, moet wel gehandhaaft blijven, alleen er moet iets achter komen, bv -a, -b, of -c enzovoorts. De voorgestelde bestandsnaam moet ook afgetest worden op reeds aanwezig zijn, denk ik dan ook.

Hoe dan ook, omdat er een stukje Visual Basic om de hoek komt kijken, denk ik dat het verstandig is, om dit bericht ook te gaan plaatsen in dát subforum. Waarvan akte. Dit is het stukje basiscode waar het om gaat:

Code:
Sub SorBorSav()
'
' SorBorSav Macro
' De macro is opgenomen op 04-02-2011 door Lucas.
'
' Sneltoets: CTRL+SHIFT+B
'
With Range("A3:H" & ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row - 1)
    .Sort Key1:=Range("B3"), Order1:=xlDescending, Header:=xlGuess
    .Interior.Color = xlNone
        With .Font
            .Name = "Verdana"
            .Size = 10
            .ColorIndex = xlAutomatic
        End With
    
    Dim Bestandsnaam As String
    Dim Sysdate
    Sysdate = Format(Date, "yyyymmdd")
    Bestandsnaam$ = "G:\" + CStr(Range("c3").Value) + "-" + Sysdate + ".xls"
    ActiveWorkbook.SaveAs Bestandsnaam$

Het bestand waarmee gewerkt wordt, heb ik bijgevoegd.
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan