Avatar billede acw Nybegynder
29. januar 2004 - 09:59 Der er 5 kommentarer og
1 løsning

lægge et tal til filnavnet

Hej. Jeg har en gem-knap der ser sådan her ud:

Sub saveundone_Click()
   
Dim sti As String, Navn As String

   
    If Range("C9").Value = "" And Range("navn").Value = "" Then
    MsgBox "Du mangler at indtaste dit navn og data", vbCritical
    Exit Sub
    End If
   
        If Range("navn").Value = "" Then
        MsgBox "du har ikke indtastet dit navn!", vbCritical
        Exit Sub
        End If
       
                If Range("C9").Value = "" Then
                MsgBox "du har ikke indtastet data", vbCritical
                Exit Sub
                End If
   
       
    sti = "c:\timeregistrering\" & Range("init").Value & "\"
    Navn = Range("init").Value & " " & Range("uge").Value
   
    If Dir("c:\timeregistrering", vbDirectory) = "" Then MkDir "c:\timeregistrering\"
    If Dir(sti, vbDirectory) = "" Then MkDir sti
   
 
    Sheets("Timer").Select
    Range("B9:bund").Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count) 'indsætter et nyt ark og lader programmet tælle nummeret på arket
    Sheets(Sheets.Count).Select
    Range("A1").Select
    ActiveSheet.Paste ' indsætter det kopierede materiale fra Det originale ark
    Application.CutCopyMode = False
    Application.DisplayAlerts = False
   
    ActiveSheet.SaveAs FileName:=sti & Navn, FileFormat:=xlText
         
    Sheets("Timer").Select
   
    Sheets(Sheets.Count).Delete 'sletter det oprettede ark og lukker Microsoft Excel
    Range("B8").Select
       
    enabletoolbars
    layout2
    Application.quit
   
End Sub

---------------------------------------

Jeg vil gerne have lavet det sådan, så hvis filen findes i forvejen, skal den ikke overskrives som den gør nu, men der skal lægges et tal til filnavnet, så første gang man gemmer hedder filen bare eks.: CCH 34.txt
Næste gang skal den så hedde "CCH 34 2.txt"
Hvis den så findes næste gang skal næste fil hedde "CCH 34 3.txt"

har prøvet at lege lidt med Application.FileSearch, men kan ikke helt få det til at hænge sammen med den simple operation at lægge et tal til..
Avatar billede hugopedersen Nybegynder
29. januar 2004 - 10:51 #1
Public Sub shpTest_SaveFile()
' -----------------------------------------------------------------------------------
' Purpose    :
' Parameters :
' Created    : 01-29-04
' Modified  :
' Remarks    :
' -----------------------------------------------------------------------------------
On Error GoTo Error_shpTest_SaveFile
  Dim sti As String, Navn As String
  Dim strFileName As String
  Dim intX As Integer
  Dim bolFound As Boolean
 
  If Range("C9").Value = "" And Range("D9").Value = "" Then
    MsgBox "Du mangler at indtaste dit navn og data", vbCritical
    Exit Sub
  End If
   
  If Range("D9").Value = "" Then
    MsgBox "du har ikke indtastet dit navn!", vbCritical
    Exit Sub
  End If
       
  If Range("C9").Value = "" Then
    MsgBox "du har ikke indtastet data", vbCritical
    Exit Sub
  End If
         
  sti = "c:\timeregistrering\" & Range("D9").Value & "\"
  Navn = Range("D9").Value & "_" & Range("E9").Value
   
  If Dir("c:\timeregistrering", vbDirectory) = "" Then MkDir "c:\timeregistrering\"
  If Dir(sti, vbDirectory) = "" Then MkDir sti
   
  bolFound = True
  intX = 1
  strFileName = Navn & "_" & intX & ".txt"
  Do While bolFound = True
    With Application.FileSearch
      .NewSearch
      .LookIn = sti
      .SearchSubFolders = False
      .Filename = strFileName
      .MatchTextExactly = False
      .Execute
      If .FoundFiles.Count > 0 Then
        intX = intX + 1
        strFileName = Navn & "_" & intX & ".txt"
      Else
        bolFound = False
      End If
    End With
  Loop
Debug.Print strFileName
   
  Sheets("Timer").Select
  Range("B9:B20").Select
  Selection.Copy
  Sheets.Add After:=Sheets(Sheets.Count) 'indsætter et nyt ark og lader programmet tælle nummeret på arket
  Sheets(Sheets.Count).Select
  Range("A1").Select
  ActiveSheet.Paste ' indsætter det kopierede materiale fra Det originale ark
  Application.CutCopyMode = False
  Application.DisplayAlerts = False
  ActiveSheet.SaveAs Filename:=sti & strFileName
 
'  , FileFormat:=xlText

MsgBox sti & strFileName
         
  Sheets("Timer").Select
   
  Sheets(Sheets.Count).Delete 'sletter det oprettede ark og lukker Microsoft Excel
  Range("B8").Select

Exit_shpTest_SaveFile:
  Exit Sub

Error_shpTest_SaveFile:
  Select Case Err.Number
    Case 2501
    Case 3021
    Case Is < 0
    Case Else
      MsgBox Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error in procedure 'shpTest_SaveFile'"
  End Select
  Resume Exit_shpTest_SaveFile

End Sub
Avatar billede hugopedersen Nybegynder
29. januar 2004 - 10:53 #2
Der er dog et par issues

Den vil ikke gemme som txt
Det resulterer i at du ender med at have arket du lige har gemt åben.

Jeg kan ikke huske hvordan det lige er man fikser det, men jeg har et eksempel der hjemme der gør det.
Avatar billede kabbak Professor
29. januar 2004 - 14:00 #3
Sheets("Timer").Select
    Range("B9:bund").Select
    Selection.Copy
    Sheets.Add After:=Sheets(Sheets.Count) 'indsætter et nyt ark og lader programmet tælle nummeret på arket
    Sheets(Sheets.Count).Select
    Range("A1").Select
    ActiveSheet.Paste ' indsætter det kopierede materiale fra Det originale ark
    Application.CutCopyMode = False
    Application.DisplayAlerts = False

nr = ""
i = 0
Do
Fundet = (Dir(sti & Navn & nr & ".txt"))
Snavn = Navn & nr & ".txt"
If Fundet <> Snavn Then ' tjekker om den eksisterer
Exit Do
End If
i = i + 1
nr = " " & i
Loop

ActiveSheet.SaveAs Filename:=sti & Navn & nr, FileFormat:=xlText
         
    Sheets("Timer").Select
   
    Sheets(Sheets.Count).Delete 'sletter det oprettede ark og lukker Microsoft Excel
    Range("B8").Select
Avatar billede acw Nybegynder
29. januar 2004 - 15:17 #4
Perfekt kabbak. Tak. Smid svar for point
Avatar billede kabbak Professor
29. januar 2004 - 15:23 #5
et svar ;-))
Avatar billede kabbak Professor
29. januar 2004 - 17:48 #6
takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester