Bugue d'Excel avec une plage de cellule nomée sur un seul poste :/

benoua

XLDnaute Occasionnel
Bonjour à tous!

Voilà j'ai développé une macro complémentaire pour mon service (avec l'aide de beaucoup d'entre vous que je remercie encore une fois!), celle-ci tourne au poil sauf un poste qui me pose problème! J'vais essayer d'être clair...:eek:

Voilà en gros mon code (j'ai supprimé 2-3 trucs sans importance) :
Code:
Sub erz()
Dim Filename As String

On Error GoTo Erreur
Filename = Range("Save_Name").Value

     
           ChDir (Chemin + "Affaires\")
            ActiveWorkbook.SaveAs (Filename), FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="",   ReadOnlyRecommended:=False _
            , CreateBackup:=False
           Range("EXPORT_CARNET").Copy
                        
                        If ClasseurOuvert("Carnet de commandes.xls") Then
                        Workbooks("Carnet de commandes.xls").Activate
                        Else
                        Workbooks.Open (Chemin + "Carnet de Commandes\Carnet de commandes.xls")
                        End If
                        
                    Range("A500").End(xlUp).Offset(1, 0).Select
                    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
                    ActiveWorkbook.Save
                    ActiveWorkbook.Close
[U]
[B]                    Workbooks(Filename).Activate[/B][/U]
                    End If
                    
                End If

            Sheets("Menu").Select
            MsgBox ("Sauvegarde terminée")
            End If
            
        End If

Else
Erreur:
MsgBox ("La sauvegarde a été annulée ou ne s'est pas correctement exécutée")

Cette macro marche sur 9 des 10 postes du service mais sur un poste celle-ci foire à partir de la ligne en gras! Et du coup il me renvoie le message d'erreur de la fin. Mais il fait bien le copier/coller juste avant et referme le classeur "Carnet de Commandes.xls".

Comme on peut le voir dans le code Filename est une variable qui prend la valeur du Range("Save_Name").
Save_Name est une cellule qui concatène 3 champs remplis par l'utilisateur. Ainsi les fichiers sont tous nommés selon un même format.
Du coup il est censé une fois avoir fermé le classeur "Carnet de commande" rebasculé sur le classeur créé précédemment. Mais la sans raison il agit comme si aucun classeur portant le nom dans Save_Name n'existait.

J'ai remarqué ceci sur ce poste et uniquement sur ce poste :
Avant l'enregistrement via la macro :
29lbded.jpg

Après l'enregistrement :
34qphzm.jpg


"Bases" est le nom de l'onglet sur lequel se trouve le Range("Save_Name"), mais pourquoi fait il son apparition après l'enregistrement? D'autant plus qu'il ne le fait pas sur les autres postes...

A noter que tout le monde a la même version d'Excel!

Une idée? :confused:

Merci d'avance:)
 

benoua

XLDnaute Occasionnel
Re : Bugue d'Excel avec une plage de cellule nomée sur un seul poste :/

salut tototiti
merci de ta réponse rapide!
j'ai essayé mais le problème est toujours là...
A noter qu'il trouve bien Save_Name au début et que Filename = Range("Save_Name").Value marche puisque derrière il nomme bien le fichier avec le nom qui se trouve dans Save_Name...
En revanche une fois le fichier enregistré souss son nouveau nom Visual Basic ne sait plus ou se trouve Save_Name...
Autre précision j'ai une macro ClasseurOuvert dont voici le code :
Code:
Function ClasseurOuvert(wbName As String) As Boolean
'renvoi vrai si NomClasseur.xls est ouvert
  On Error Resume Next
  ClasseurOuvert = (Len(Workbooks(wbName).Name))
End Function

Si je fais :
Code:
Dim FileName as string
Filename=range("Save_Name").value
Classeurouvert(FileName)

Cette macro me renverra toujours la valeur fausse sur ce poste alors qu'elle marche partout ailleurs..
Après la sauvegarde de l'autre macro c'est comme s'il ne savait plus où se trouve Save_Name...
 

benoua

XLDnaute Occasionnel
Re : Bugue d'Excel avec une plage de cellule nomée sur un seul poste :/

voilà le code complet si ca peut t'aider :

Code:
Sub SauvegardeAffaire()

Application.ScreenUpdating = False
Dim Sup
Dim Filename As String

On Error GoTo Erreur
Filename = Range("Save_Name").Value

If ClasseurOuvert("Masque Affaire.xls") Or ClasseurOuvert(Filename) Then
Sheets("Convention").Select
        
        If Range("C5") = "" Or Range("f5") = "" Or Range("C11") = "" Or Range("C19") = "" Then
        MsgBox ("La fiche n'est pas suffisament remplie")
        Else: Sup = MsgBox("Voulez vous sauvegarder le fichier? Si vous enregistrez cette affaire pour la première fois, l'export vers le carnet de commande se fera automatiquement.", vbInformation + vbYesNo + 256, "")
            
            If Sup = vbYes Then
            ChDir (Chemin + "Affaires\")
            ActiveWorkbook.SaveAs (Filename), FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False
            Sheets("Détails Hors Co-traitance").Select
            ActiveSheet.Unprotect Password:="persyst"

                If Range("controle") = 0 Then

                    If Range("probabilité").Value = "Signé" Then
                    Range("DateCréation").Copy
                    Range("DateCréation").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
                    Range("controle") = 1
                    Application.CutCopyMode = False
                    Sheets("Bases").Select
                    Range("EXPORT_CARNET").Copy
                        
                        If ClasseurOuvert("Carnet de commandes.xls") Then
                        Workbooks("Carnet de commandes.xls").Activate
                        Else
                        Workbooks.Open (Chemin + "Carnet de Commandes\Carnet de commandes.xls")
                        End If
                        
                    Range("A500").End(xlUp).Offset(1, 0).Select
                    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
                    ActiveWorkbook.Save
                    ActiveWorkbook.Close
                    Workbooks(Filename).Activate
                    End If
                    
                End If

            Sheets("Menu").Select
            MsgBox ("Sauvegarde terminée")
            End If
            
        End If

Else
Erreur:
MsgBox ("La sauvegarde a été annulée ou ne s'est pas correctement exécutée")
End If

End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Bugue d'Excel avec une plage de cellule nomée sur un seul poste :/

rien d'évident ne me vient à l'esprit... j'ai déjà eu des problèmes avec les noms parfois, mais j'avais tendance à attribuer ça à de mauvaises manipulations des utilisateurs...
désolé, pas d'idée :(
 

Discussions similaires

Statistiques des forums

Discussions
312 242
Messages
2 086 532
Membres
103 243
dernier inscrit
SAH