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

boudu

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

Bonjour claudy et merci pour ta proposition mais j'ai toujours le meme probleme apres avoir installe la macro complementaire et en plus le fichier final est destiné à ete utilisé sur de nombreux postes avec des versions differentes d'excel et je ne sais pas si les macros complementaires suivent (ou bien comment faire pour qu'elles suivent)
De toutes façons pour l'instant j'ai toujours le message qui demande si on veut mettre à jour les liaisons à l'ouverture du fichier sauvegardé
En fait, la feuille que je veux recopier dans un fichier plus leger est la 11eme du fichier d'origine, les 10 premieres feuilles de ce fichier renvoient des infos dans le 11eme
Le code d'Eric est vraiment impecc et je pourrais toujours dire aux utilisateurs de repondre "non" à la question mais bon si on pouvait ne pas l'avoir!!
Bonne journée
 

boudu

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

re salut eric
on a posté en meme temps, je ne sais pas effectivement ce que fait ma macro mais ça n'a pas l'air de marcher chez moi
en fait il me faut une recopie de valeurs pour qu'excel ne cherche pas le lien dans le fichier d'origine mais je n'ai pas réussi à faire ça dans ton code
Merci
@+
 

boudu

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

Re Eric
decidement..
en fait le message est à l'ouverture du fichier créé, la macro sur le fichier d'origine est tout à fait ok
tu peux reprendre le premier fichier posté sur ce fil pour comprendre mon probleme, la feuille statistiques que je veux recuperer seule est bourrée de formules en lien avec les 10 feuilmles precedentes alors quand excel recopie dans le nouveau fichier il prend tout
A l'ouverture du fichier créé, je voudrais n'avoir que les resultats. C'est pour alleger le fichier final et seule cette feuille est interessante en final
à suivre
 

Eric 45

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

Re Boudu

Encore un petit pb de supprimer ( j'espère... )

Private Sub CommandButton1_Click()

Dim nomfic As String
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

nomfic = ActiveWorkbook.Name
While nomfic02 = ""
nomfic02 = Application.GetSaveAsFilename
Wend
nomfic01 = nomfic02 & "xls"

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
Range("A1").Select
ActiveSheet.Protect Password:="jojo"
End Sub


A+
 

boudu

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

Salut Eric
Merci pour ce nouveau pas, maintenant je n'ai plus le message de liaison mais j'ai perdu la mise en page et l'en tete et le pied de page que je voulais recopier de l'onglet statistiques
En plus j'aimerais bien que lorsqu'on ouvre le fichier il ne soit pas noirci (selection) mais à ce niveau ça devient du luxe; le principal est là et je te remercie pour le temps que tu as passé
Bonne continuation
@+
 

Eric 45

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

Re à tous
Re Boudu

un petit plus :

Private Sub CommandButton1_Click()

Dim nomfic As String
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Application.ScreenUpdating = False

Cells.Select
Selection.Copy

Sheets("Feuil1").Copy
ActiveSheet.Unprotect Password:="jojo"
ActiveSheet.Shapes("CommandButton1").Delete
Selection.ClearContents
nomfic = ActiveWorkbook.Name
'A MODIFIER SUIVANT LE NOM DU FICHIER ORIGINAL
Workbooks("essaiboudu13.xls").Activate
Cells.Select
Selection.Copy
Workbooks(nomfic).Activate

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False


While nomfic02 = ""
nomfic02 = Application.GetSaveAsFilename
Wend
nomfic01 = nomfic02 & "xls"

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
Range("A1").Select
ActiveSheet.Protect Password:="jojo"
End Sub



A+
 

boudu

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

Salut Eric
Encore merci mais ça oblige à nommer le fichier d'origine hors tous les utilisateurs vont avoir un fichier de travail d'un nom different!!
Il faut que la macro fasse son travail à partir d'un fichier X.
Le premier fichier que j'ai mis en test au debut de ce fil copiait tout (mise en forme et en tete) mais je n'arrive pas à comprendre comment dans le code:
Private Sub CommandButton1_Click()
On Error GoTo gesterreur

Dim nomfic As String

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" 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

Ce code etait moins bien que le tien car pas d'explorateur pour choisir emplacement et nom mais marchait impecc pour la recopie des valeurs et mises en formes
Bonne soirée
 

boudu

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

Bonjour Eric, le forum
J'ai trouvé la façon d'obtenir tout ce que je voulais en mélangeant les versions voici la version finale qui est OK

Merci Eric de ta perseverance!!


Private Sub CommandButton1_Click()


Dim nomfic As String
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Application.ScreenUpdating = False

Application.ActiveSheet.Copy

With ActiveSheet
.Cells.Select
End With
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveSheet.Unprotect Password:="jojo"
ActiveSheet.Shapes("CommandButton1").Delete
While nomfic02 = ""
nomfic02 = Application.GetSaveAsFilename
Wend
nomfic01 = nomfic02 & "xls"

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
Range("A1").Select
ActiveSheet.Protect Password:="jojo"
If Err.Number = 1004 Then MsgBox "Fichier Non Enregistre ": ActiveWorkbook.Saved = True: ActiveWorkbook.Close
End Sub
 

Eric 45

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

Bonsoir à tous
bonsoir boudu

Si je peux me permettre, si tu ajoutes ces 2 lignes de code, je pense que tu auras fini :

après
ActiveSheet.Shapes("CommandButton1").Delete

tu ajoutes ceci :
Sheets("Feuil1").Name = "STATISTIQUES"
ActiveSheet.Cells(1, 1).Select

A+
 

boudu

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

Bonsoir Eric; le forum

Alors là je vois que tu avais bien compris ma salade parce que effectivement c'etait le chainon manquant pour la perfection

Encore merci et bonne continuation
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175