probleme macro qui fonctionne avec excel 2000 et pas 97

boudu

XLDnaute Occasionnel
Bonjour au forum
Je suis sdesole de poster à nouveau sur ce meme probleme mais je n'y arrive pas et c'est tres frustrant
J'ai été aidé par eric et allegro sur ce fichier mais je n'arrive pas à finaliser avec mon fichier test donc je mets "le vrai" juste un peu allégé pour qu'il fasse 40 ko
Mon souci est que la macro de recopie de l'onglet statistiques fonctionne parfaitement sur les postes avec excel 2000 mais renvoie systematiquement fichier non enregistré avec 97 (j'ai des utilisateurs avec les 2 versions donc je ne peux proposer cette solution que si ça tourne avec 97)
Il faut que l'entete, la mise en forme et le contenu soient recopiés mais pas le bouton qui lance la macro
Merci d'avance à celui ou celle qui trouvera la solution
 

Pièces jointes

  • creationfichier.zip
    39.6 KB · Affichages: 33

Luki

XLDnaute Accro
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Salut

Je ne sais pas si je vais pouvoir te sauver des eaux, mais je peux essayer!
Si je comprends, c'est cette macro qui te pose souci:
le pb pourrait venir de la variable nomfic.

Code:
Private Sub CommandButton1_Click()
On Error GoTo gesterreur

Dim nomfic As String [COLOR=Red][B]' remplace ceci par: [COLOR=Black]Dim nomfic As variant[/COLOR][/B][/COLOR]

Application.ActiveSheet.Copy

With ActiveSheet
.Cells.Select
End With
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveSheet.Shapes("CommandButton1").Delete
nomfic = ""
Do
If nomfic = "" Then
nomfic = Application.InputBox("Sous quel nom souhaitez vous enregistrer le fichier ? (chemin complet, le repertoire doit exister)" _
& Chr(13) & Chr(10) & "Cliquez sur Annuler pour ne pas l'enregistrer")
Else: If nomfic = "Faux"[COLOR=Red][B]'ici, remplace par :[/B][/COLOR] [B]FALSE[/B] Then GoTo gesterreur Else GoTo suite
End If: '
Loop
suite:
ActiveWorkbook.SaveAs Filename:=nomfic, FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
MsgBox "Le fichier esr enregistre sous le nom : " & nomfic
Exit Sub
gesterreur:
If Err.Number = 1004 Then MsgBox "Fichier Non Enregistre ": ActiveWorkbook.Saved = True: ActiveWorkbook.Close
End Sub
Vois ce que ça donne, je me souviens de ce genre de souci sous 97, mais je n'en ai plus pour vérifier.

Sinon, il serait utile de savoir ou ça plante, désactive ton gestionnaire d'erreur pour vérifier et dis nous.

D'autre part, est-il normal que le nouveau fichier soit créé AVANT de savoir si il sera enregistré?
Si c'est la cas, la macro ne devrait elle pas le supprimer si on clique sur Annuler?



A te lire
 

Eric 45

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Bonjour le forum
Bonjour Boudu, Luki

Je viens d'essayer et pour moi cela fonctionne sur 97 et 2000. regarde le fichier joint

A+
 

Pièces jointes

  • essaiboudu03.zip
    12.9 KB · Affichages: 22

boudu

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Bonjour Luki, Eric
Merci à tous les 2 de regarder mon souci
Luki, j'ai testé les 2 modifs du code mais ça ne marche pas
Eric, (merci de regarder à nouveau mon souci), ça marche avec ce fichier test mais pas avec celui qui est vraiment le mien et que j'ai joint au post de ce matin. En plus ça recopie les boutons et ça je veux pas l'avoir sur le nouveau fichier
avec excel 2000, ça fait exactement ce que je veux!!!

Luki, tu as raison il faudra gerer la non creation en cas d'abandon mais ce code m'avait été proposé par un intervenat du forum et je veux d'abord etre sur de pouvoir le faire tourner avec 97 avant de faire cette modif (si tu peux m'indiquer comment la faire je suis preneur car un certain nombre des utilisateurs finaux du fichier utilise 2000)
Quand j'enleve le gestionnaire d'erreur ça bloque sur la premiere ligne:
Application.ActiveSheet.Copy

Merci à nouveau à tous les deux et aux autres membres du forum qui auraient une idée

A+
 

boudu

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Bonjour Eric
Merci pour ton aide
Je ne dispose aujourd'hui que d'un poste avec 2000 donc je ne pourrai te dire que lundi ce que ça donne avec 97
J'aurais préféré que tu fasses le test avec le fichier que j'ai joint au debut de ce post car c'est vraiment sur celui là que ça doit marcher
Le fichier qui s'enregistre ne peut pas etre nommé autrement que classeur1, si je mets un autre nom il s'enregistre quand meme avec ce nom!!!
Bon week end à toi ey au forum
 

myDearFriend!

XLDnaute Barbatruc
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Bonjour boudu, Luki, Eric 45, le Forum,

Si tu veux que cette macro fonctionne sur XL 97, pour éviter l'erreur que tu rencontres, il n'y a rien à modifier dans le code VBA que tu présentes dans le fichier joint à ton post d'hier 08h45 (en tout cas pour le fonctionnement sans plantage).
Il convient simplement de mettre la propriété TakeFocusOnClick de ton bouton "Cliquez pour Sauver" à False.

Cordialement,
 

boudu

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Merci MDF, Eric
Je ferai la modif proposée par MDF demain sur un poste avec 97 car je n'en ai pas durant le week end
Eric, c'est ma faute car c'etait le premier fichier que j'avais proposé mais ce n'est pas celui que j'ai posté à nouveau sur ce fil

L'idée de proposer l'explorateur puis la confirmation d'enregistrement me plait tout à fait mais il faut gérer l'annulation (dans ce cas aucun fichier créé) et surtout que le fichier soit nommé en fonction de ce qu'on inscrit et non systematiquement classeur1

Comme le suggerait Luki, il faudrait peur-etre ne lancer la copie de la feuille statistiques qu'apres avoir validé la confirmation de l'enregistrement??
Je ne suis pas tres performant en vba et ne sais evidemment pas faire ce que je dis.. Est-ce réalisable??
Merci et bon dimanche à tous
 

Eric 45

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Bonsoir à tous
Bonsoir Boudu, mDF

Juste un nouveau petit fichier. Il te suffit de reprendre le code et de l'insérer dans ton fichier.
Je l'ai essayé sur 2000 et 97

A+

Eric
 

Pièces jointes

  • essaiboudu08.zip
    9.6 KB · Affichages: 19

boudu

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Bonjour Eric, MDF, le forum
Je vous remercie tous les 2 car effectivement sur les postes en 97 la modif dans les propriétés du bouton proposée par MDF permet de faire fonctionner la macro et à Eric car la derniere version de la macro permet de faciliter la sauvegarde du fichier

Bonne journée à tous
 

boudu

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

re bonjour Eric, MDF, le forum
Apres tests ça fonctionne impecc
Ultime petit probleme la feuille sur mon fichier d'origine est protégée par un mot de passe; j'ai essayé de rajouter unprotect dans la macro, à ce moment-là la recopie s'effectue mais excel me demande le mot de passe. Je voudrais evidemment que ce ne soit pas le cas puisque le mot de passe est inconnu des utilisateurs et par ailleurs le fichier créé indique à l'ouverture qu'il est en liaison avec un autre et ce message est egalement inutile
Je ne sais pas comment syntaxer ces elements en vba mais apres ceci ce sera vraiment parfait
Le test peut etre fait sur le dernier fichier d'Eric qui est parfait pour moi en rajoutant un mot de passe du genre "toto"

Merci d'avance et bonne journée au forum
 

Eric 45

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Re Bonjour

Voici le code modifié :

*********
Private Sub CommandButton1_Click()

Dim nomfic As String
Dim Msg, Style, Title, Help, Ctxt, Response, MyString

Sheets("Feuil1").Copy
nomfic = ActiveWorkbook.Name
While nomfic02 = ""
nomfic02 = Application.GetSaveAsFilename
Wend
nomfic01 = nomfic02 & "xls"
ActiveSheet.Unprotect Password:="jojo"
ActiveSheet.Shapes("CommandButton1").Delete

Msg = "Souhaitez-vous enregistrer ce fichier?"
Style = vbYesNo
Title = "Démonstration de MsgBox "
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then
MyString = "Oui"
ActiveSheet.Protect Password:="jojo"
ActiveWorkbook.SaveAs FileName:=nomfic01, FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
MsgBox "Le fichier est enregistré sous le nom : " & nomfic02
End If
ActiveWorkbook.Close
ActiveSheet.Protect Password:="jojo"
End Sub

*********

Attention le mot de pass est : jojo
La feuille du fichier créé est protégée
La feuille du fichier "original" est reprotégée

A+
 

boudu

XLDnaute Occasionnel
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Re bonjour Eric, le forum
Bon, encore une etape de franchie; le probleme du mot de passe est resolu mais j'ai un message concernant les liaison avec un aute fichier au demarrage
Peut-on se debarrasser de ce message (et apers je t'embete plus, promis)
Merci pour tout
 

Claudy

XLDnaute Accro
Re : probleme macro qui fonctionne avec excel 2000 et pas 97

Hello va voir du côté de Findlink.xla en piè!ce jointe..
A+
Claudy
 

Pièces jointes

  • findlink.zip
    34.4 KB · Affichages: 15
  • findlink.zip
    34.4 KB · Affichages: 20
  • findlink.zip
    34.4 KB · Affichages: 16

Discussions similaires

Réponses
8
Affichages
354

Statistiques des forums

Discussions
312 764
Messages
2 091 871
Membres
105 084
dernier inscrit
lca.pertus