Opslaan als (waarde v.e. cel), indien naam aanwezig hier een volgnummer aan toevoegen

Status
Niet open voor verdere reacties.
Helaas werkt Replace niet in XL97. Heb je mijn antwoord uit Post#18 getest ?
 
Robert,

Gelukkig wel. Het is even lastig anticiperen op een programma van 13 jaar oud wat ik niet heb. gelukkig weet ik waar ik naar moet zoeken, en dankzij dit onderwerp heb ik een paar dingen over excel 97 geleerd, zoals ontbrekende functies. dus dank!

Ik heb een Replace functie gemaakt met als basis de Werkbladfunctie substitueren

Nu werkt het hopelijk wel. stel gerust je vraag als er nog iets niet helemaal in orde is.

Code:
Option Explicit

Private Const spath As String = _
    "C:\Documents and Settings\smidr00\Bureaublad\Bos\Gereed voor verrijking\"
Sub OpslaanAls()

    Application.ScreenUpdating = False

    If Range("D2") = "" Then
    
        Range("D2") = InputBox("Helaas staat " & _
            "het e-mailadres van de GDW niet in het " & _
            "bestand; vul deze alsnog handmatig in!")
    
    End If
    
    SaveToFile Sheets("Blad1"), CStr(Trim(Range("D2").Value))

    Application.ScreenUpdating = True

End Sub

Private Sub SaveToFile(ByRef Mysheet As Worksheet, _
                        ByVal sFile As String)

    If sFile <> "" Then

        sFile = NewFileName(sFile)
        
        With Mysheet
        
            .Range("E2") = Replace(sFile, spath, "")
            .Copy
        
        End With
        
        With ActiveWorkbook
                
            .SaveAs sFile
            .Close
            
        End With
        
    End If
    
End Sub

Private Function NewFileName(ByVal sName As String) As String

Dim lIndex As Long
    
    sName = spath & sName & "   "
    
    Do While Dir(Trim(sName) & ".xls") <> ""
    
        lIndex = lIndex + 1
        sName = Mid(sName, 1, Len(sName) - 3) & " " & _
                    Right("00" & CStr(lIndex), 2)
    
    Loop

    sName = sName & ".xls"
    NewFileName = Trim(sName)

End Function

Function Replace(Text As String, _
                Replacetext As String, _
                Replacement As String) As String

With WorksheetFunction

    Replace = .Substitute(Text, Replacetext, Replacement)

End With

End Function
 
Je kan toch ook gewoon het Application.object gebruiken
Code:
Function Replace(Text As String, _
                Replacetext As String, _
                Replacement As String) As String
    Replace = Application.Substitute(Text, Replacetext, Replacement)
End Function
 
Zou kunnen, ik kwam Worksheetfunction.substitute tegen met Google en ik kan verder niet echt testen met 97

Ik gebruik zelf ook altijd worksheetfunction voor werkbladfuncties dus heb ik het zo maar gedaan.

Ik weet niet of dat performancetechnisch nog iets scheelt?

Gr. Mark
 
Het werkt perfect

Heren bedankt,

Het werkt perfect ik heb de methode van Mark gebruikt en deze werkt prima. De methode van Rudy zal ik later op de avond ook proberen, maar zal ongetwijfeld ook zeer goed functioneren...

Nogmaals hartelijk bedankt. :thumb:

Groeten, Robert
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan