Sauvegarde=Nom de cellule

Rebonjour le forum.

Je suis dans la partie test de mon programme et j'aitrouver un bug que je n'arrive pas a résoudre.

Pour commencer, voici le code:

Private Sub CommandButton2_Click()
Dim i As Integer, verif As Boolean, Nom As String
Dim classeur As String
Dim fichier1 As String
Dim fichier2 As String
Dim fichier3 As String
Dim fichier4 As String

For i = 1 To Worksheets.Count
    If Worksheets(i).Name = TextCode5.Text Then
        Nom = TextCode5.Text
        verif = True
        Exit For
    End If
Next i

If TextCode5.Text Like "#####" Then
'Part1
If verif = True Then
  Application.ScreenUpdating = False
Acode = TextCode5.Text
classeur = ActiveWorkbook.Name
fichier1 = "C:\Program Files\CrypteInc\Anciens Personnages\" & "P_" & [M3].Value
fichier2 = "P_" & [M3].Value & ".xls"

   Sheets(Acode).Select

   With ActiveSheet
    Cells.Select
    Range("X14").Activate
    Selection.Copy
    Workbooks.Add
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
   End With

       Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=fichier1, _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    Application.DisplayAlerts = True

    Application.DisplayAlerts = False
    Windows(classeur).Activate
    Sheets(Acode).Select
    Sheets(Acode).Delete
    Windows(fichier2).Close
    Application.DisplayAlerts = True

  Application.ScreenUpdating = True
    Unload Me
    USF_Ouverture.Show
End If
Else
    MsgBox "Aucune fiche ne correspond à la recherche"
End If
End Sub

Je l'ai fait en grande partie avec l'enregistreur, donc il n'est pas parfait mais il fonctionne a 99%.

Le 1% qui bug viens de la sauvegarde du fichier. Le fichier créé par la macro est sensé prendre le nom P_CelluleM3.xls.

Si la cellule M3 contient un nom commencant par une minuscule, il n'y a aucun probleme, si se nom commence par une majuscule ... il enregistre le fichier sous P_.xls.

Pouvez vous m'aider ?

Merci d'avance a tous le forum

Peri

Edit1: Après test, si le mot en M3commence par une minuscule mais qu'il y a deux mots, il enregistre P_.xls.

Exemple:

Si m3 = test = P_test.xls

Si m3 = Test = P_.xls devrait être P_Test.xls

Si m3 = test un = P_.xls devrait etre P_Test un.xls

Bonjour

Sans ton fichier c'est facile de te répondre. Le pb peut venir de la définition de fichier2, lorsque tu utilises l'instruction WINDOWS(fichier2).close.

Tu peux déjà essayer de mettre OPTION COMPARE TEXT juste avant le début de ta macro (donc juste avant PRIVATE...)

Tu peux changer

Application.DisplayAlerts = True 
Application.DisplayAlerts = False 
Windows(classeur).Activate 
Sheets(Acode).Select 
Sheets(Acode).Delete
Windows(fichier2).Close 
Application.DisplayAlerts = True

par

Application.DisplayAlerts = False 
Workbooks(Classeur).Sheets(Acode).Delete
Workbooks(fichier2).Close 
Application.DisplayAlerts = True 

Remplace aussi

Sheets(Acode).Select 
With ActiveSheet 
Cells.Select 
Range("X14").Activate 
Selection.Copy 
 Workbooks.Add 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
        :=False, Transpose:=False 
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ 
        SkipBlanks:=False, Transpose:=False 
End With 

par

With Sheets(Acode)
.Select
'Range("X14").Activate (instruction non nécessaire je pense...)
Cells.Copy 
 Workbooks.Add 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
        :=False, Transpose:=False 
End With 

D'autres améliorations sont possibles.

Amicalement

Dan

Bonjour le forum et merci NadDan pour tes conseils, je vais modifier ma macro pour l'allège un peu de tout se code (vive l'enregistreur de macro).

A force de tourner et retourner le problême dans tous les sences, j'ai trouvé mon problême ...

fichier1 = "C:\Program Files\CrypteInc\Anciens Personnages\" & "P_" & [M3].Value
fichier2 = "P_" & [M3].Value & ".xls" 

Il ma suffit de remplacer [M3].Value par [M3].Text ... tout bête quoi.

Merci encore Nad Dan

Peri

Rechercher des sujets similaires à "sauvegarde nom"