Compatibilité Macro 2010 > 2003
Résolu
Brandysve
Messages postés
55
Date d'inscription
Statut
Membre
Dernière intervention
-
Brandysve Messages postés 55 Date d'inscription Statut Membre Dernière intervention -
Brandysve Messages postés 55 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Compatibilité Macro 2010 > 2003
- Compatibilite windows 11 - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Clé activation office 2010 gratuit - Télécharger - Sécurité
- Pack compatibilité office 2003 - Télécharger - Bureautique
- Word 2010 - Télécharger - Traitement de texte
4 réponses
Bonjour,
Si tu enregistres tes actions, tu as ça qui apparaît :
Essaie donc :
A+
Si tu enregistres tes actions, tu as ça qui apparaît :
, FileFormat:=xlExcel8
Essaie donc :
ActiveWorkbook.SaveAs Filename:=fichier, FileFormat:=xlExcel8
A+
Bonjour,
En ajoutant ce que tu as inscrit, mes macro s'exécute sur le fichier .xls
En fait, le fichier .xlt ouvre une fenêtre ou j'inscris des données qui sont collées dans la feuille. En même temps, il enregistre sous ".xls" en fonction d'une des données.
En rajoutant ce que tu m'as donnés, il réouvre cette fenêtre dans le fichier .xls. Or, quand il enregistre, il doit seulement reprendre le contenu et non les macro.
En ajoutant ce que tu as inscrit, mes macro s'exécute sur le fichier .xls
En fait, le fichier .xlt ouvre une fenêtre ou j'inscris des données qui sont collées dans la feuille. En même temps, il enregistre sous ".xls" en fonction d'une des données.
En rajoutant ce que tu m'as donnés, il réouvre cette fenêtre dans le fichier .xls. Or, quand il enregistre, il doit seulement reprendre le contenu et non les macro.
En fait, le fichier .xlt ouvre une fenêtre ou j'inscris des données qui sont collées dans la feuille. En même temps, il enregistre sous ".xls" en fonction d'une des données.
ça, j'avais vu
En rajoutant ce que tu m'as donnés, il réouvre cette fenêtre dans le fichier .xls. Or, quand il enregistre, il doit seulement reprendre le contenu et non les macro.
ça, c'était pas dit
Je suis assez partisan de recopier les onglets dans un fichier vierge de macros : https://www.developpez.net/forums/d66537/logiciels/microsoft-office/excel/macros-vba-excel/enregistrer-fichier-xls-macro-code-vb/
A+
ça, j'avais vu
En rajoutant ce que tu m'as donnés, il réouvre cette fenêtre dans le fichier .xls. Or, quand il enregistre, il doit seulement reprendre le contenu et non les macro.
ça, c'était pas dit
Je suis assez partisan de recopier les onglets dans un fichier vierge de macros : https://www.developpez.net/forums/d66537/logiciels/microsoft-office/excel/macros-vba-excel/enregistrer-fichier-xls-macro-code-vb/
A+
@Zoul67
En suivant le code de la page que tu m'as données, j'ai l'erreur 1004 à la ligne
Si je résume :
Dans le code de base, il enregistre bien comme il faut. Si je le réouvre avec 2010, j'ai mon fichier excel sans code vba. Si je l'ouvre en 2003, j'ai pas de code vba mais pas de contenu non plus.
En rajoutant FileFormat:=xlExcel8, il me l'enregistre comme il faut mais me le réouvre en réexécutant les macros.
Il me faudrait un mixte des deux : L'enregistrer en .xls sans réexécuter les macro.
Voilà le code rajouté en module
Et le code du Workbook actuel :
Userform1:
En suivant le code de la page que tu m'as données, j'ai l'erreur 1004 à la ligne
For Each VbComp In ActiveWorkbook.VBProject.VBComponents ' 'suppression vba
Si je résume :
Dans le code de base, il enregistre bien comme il faut. Si je le réouvre avec 2010, j'ai mon fichier excel sans code vba. Si je l'ouvre en 2003, j'ai pas de code vba mais pas de contenu non plus.
En rajoutant FileFormat:=xlExcel8, il me l'enregistre comme il faut mais me le réouvre en réexécutant les macros.
Il me faudrait un mixte des deux : L'enregistrer en .xls sans réexécuter les macro.
Voilà le code rajouté en module
Sub SupprimeToutVBA()
Dim VbComp As Object
ThisWorkbook.SaveAs "C:\Users\bsauveni\Desktop\En attente" & save_ener & ".xls", FileFormat:=xlExcel8
For Each VbComp In ActiveWorkbook.VBProject.VBComponents ' 'suppression vba
Select Case VbComp.Type
Case 1 To 3
ActiveWorkbook.VBProject.VBComponents.Remove VbComp
Case Else
With VbComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VbComp
ActiveWorkbook.Save ' enregistre les suppressions
End Sub
Et le code du Workbook actuel :
Private Sub Workbook_Open()
Dim save_ener As String
UserForm1.Show
save_ener = Range("E1")
If save_ener < 10000 Then
save_ener = "\0" & save_ener
Else
save_ener = "\" & save_ener
End If
Range("A6").Select
'fichier = "C:\Users\bsauveni\Desktop\En attente" & save_ener & ".xls"
'ActiveWorkbook.SaveAs Filename:=fichier, FileFormat:=xlExcel8
'ActiveWorkbook.Close
End Sub
Userform1:
(...)
SupprimeToutVBA
End Sub
Mise en page : oui, c'est de la duplication d'onglets.
Là, je copie un onglet de mon fichier Book1.xlsm vers Book2.xls (Excel 97-2003) :
Là, je copie un onglet de mon fichier Book1.xlsm vers Book2.xls (Excel 97-2003) :
Sub Macro1()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\bsauveni\Desktop\Book2.xls", FileFormat:=xlExcel8, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Windows("Book1.xlsm").Activate
Sheets("Sheet1").Select
Sheets("Sheet1").Copy Before:=Workbooks("Book2.xls").Sheets(1)
End Sub
Problème résolu
J'ai rajouté le code de ton lien :
J'ai rajouté ça dans le code du Workbook tout à la fin
J'ai rajouté le code de ton lien :
Sub SupprimeTout()
'Enregistre le classeur et supprime la totalité des procédures
Dim VbComp As Object
For Each VbComp In ThisWorkbook.VBProject.VBComponents
Select Case VbComp.Type
Case 1 To 3
ThisWorkbook.VBProject.VBComponents.Remove VbComp
Case Else
With VbComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next VbComp
'Sauvegarde les modifications
ThisWorkbook.Save
End Sub
J'ai rajouté ça dans le code du Workbook tout à la fin
SupprimeTout