Bonsoir toutes et tous,
J'ai un formulaire excel plein de données avec des macros abimées et qui
"beuguent" par des mauvais plaisants
je voudrais remplacer le jeu de macros par l'original "non bricolé" par les
mauvais plaisant car j'ai un formulaire tout neuf avec les bonnes macros.
Comment faire ?
[Je ne peut pas resaisir toute les données il y en a trop avec pleins de
liens sur d'autres onglets]
Si c'est trop difficile à faire , laissez tomber ma demande
Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
As-tu essayé de le faire par un copier-coller du code ? C'est sûrement la manière la plus facile... cela peut aussi se faire par macro mais si c'est seulement pour une occurrence ... Il faut simplement que tu t'assures de copier le code dans le module équivalent.
"Pat" a écrit dans le message de groupe de discussion :
Bonsoir toutes et tous, J'ai un formulaire excel plein de données avec des macros abimées et qui "beuguent" par des mauvais plaisants je voudrais remplacer le jeu de macros par l'original "non bricolé" par les mauvais plaisant car j'ai un formulaire tout neuf avec les bonnes macros. Comment faire ? [Je ne peut pas resaisir toute les données il y en a trop avec pleins de liens sur d'autres onglets] Si c'est trop difficile à faire , laissez tomber ma demande Merci
As-tu essayé de le faire par un copier-coller du code ?
C'est sûrement la manière la plus facile... cela peut
aussi se faire par macro mais si c'est seulement
pour une occurrence ... Il faut simplement que tu
t'assures de copier le code dans le module équivalent.
"Pat" <Pat@Merci.fr> a écrit dans le message de groupe de discussion :
OOPJe1ZfJHA.3728@TK2MSFTNGP06.phx.gbl...
Bonsoir toutes et tous,
J'ai un formulaire excel plein de données avec des macros abimées et qui
"beuguent" par des mauvais plaisants
je voudrais remplacer le jeu de macros par l'original "non bricolé" par les
mauvais plaisant car j'ai un formulaire tout neuf avec les bonnes macros.
Comment faire ?
[Je ne peut pas resaisir toute les données il y en a trop avec pleins de
liens sur d'autres onglets]
Si c'est trop difficile à faire , laissez tomber ma demande
Merci
As-tu essayé de le faire par un copier-coller du code ? C'est sûrement la manière la plus facile... cela peut aussi se faire par macro mais si c'est seulement pour une occurrence ... Il faut simplement que tu t'assures de copier le code dans le module équivalent.
"Pat" a écrit dans le message de groupe de discussion :
Bonsoir toutes et tous, J'ai un formulaire excel plein de données avec des macros abimées et qui "beuguent" par des mauvais plaisants je voudrais remplacer le jeu de macros par l'original "non bricolé" par les mauvais plaisant car j'ai un formulaire tout neuf avec les bonnes macros. Comment faire ? [Je ne peut pas resaisir toute les données il y en a trop avec pleins de liens sur d'autres onglets] Si c'est trop difficile à faire , laissez tomber ma demande Merci
Pat
Oui c'est ce que je pensais : copier le code dans le module équivalent mais il y en a beaucoup :(( Par contre si tu as une solution macro je suis preneur car de temps en temps je reçois des documents que les gens ont bricolés et je pourrais ainsi tous les remettre conforme d'un clic. En fait je pense qu'ils utilisent une macro perso qui écrase du code dans les miennes, sans le faire exprés. Mais je n'ai jamais trouvé le sub responsable. Je te précise que c'est un menu déroulant personnalisé qui reste grisé et que je ne peux plus utiliser pour rajouter ou supprimer des colonnes (dans mon cas). C'est génant car répétitif et je suis obligé d'ouvrir les macros et d'executer les sub correspondant à la main C'est pour cela que je souhaiterais remettre les fonctions d'origine du menu déroulant neutralisé. Je n'ai pas compris pourquoi le menu reste grisé.
Oui c'est ce que je pensais : copier le code dans le module équivalent mais
il y en a beaucoup :((
Par contre si tu as une solution macro je suis preneur car de temps en temps
je reçois des documents que les gens ont bricolés et je pourrais ainsi tous
les remettre conforme d'un clic.
En fait je pense qu'ils utilisent une macro perso qui écrase du code dans
les miennes, sans le faire exprés.
Mais je n'ai jamais trouvé le sub responsable.
Je te précise que c'est un menu déroulant personnalisé qui reste grisé et
que je ne peux plus utiliser pour rajouter ou supprimer des colonnes (dans
mon cas).
C'est génant car répétitif et je suis obligé d'ouvrir les macros et
d'executer les sub correspondant à la main
C'est pour cela que je souhaiterais remettre les fonctions d'origine du menu
déroulant neutralisé. Je n'ai pas compris pourquoi le menu reste grisé.
Oui c'est ce que je pensais : copier le code dans le module équivalent mais il y en a beaucoup :(( Par contre si tu as une solution macro je suis preneur car de temps en temps je reçois des documents que les gens ont bricolés et je pourrais ainsi tous les remettre conforme d'un clic. En fait je pense qu'ils utilisent une macro perso qui écrase du code dans les miennes, sans le faire exprés. Mais je n'ai jamais trouvé le sub responsable. Je te précise que c'est un menu déroulant personnalisé qui reste grisé et que je ne peux plus utiliser pour rajouter ou supprimer des colonnes (dans mon cas). C'est génant car répétitif et je suis obligé d'ouvrir les macros et d'executer les sub correspondant à la main C'est pour cela que je souhaiterais remettre les fonctions d'origine du menu déroulant neutralisé. Je n'ai pas compris pourquoi le menu reste grisé.
michdenis
Ce qui suit copie toutes les feuilles, le code des module standard, de classe, les formulaires vers un nouveau classeur.
'--------------------------------------------- Sub Copie_Vers_Autre_Classeur() Dim Wk As Workbook, Texte As String
'Copie toutes les feuilles vers un autre classeur vide Sheets.Copy Set Wk = ActiveWorkbook
For Each x In ThisWorkbook.VBProject.VBComponents 'Copie le code des feuilles et du ThisWorkbook If x.Type = 100 Then With x.CodeModule Texte = .Lines(1, .CountOfLines) End With With Wk.VBProject.VBComponents(x.Name).CodeModule .AddFromString Texte End With Texte = "" 'pour les modules standard et de classe et formulaire 'Exportation -> importation ElseIf x.Type = 1 Or x.Type = 2 Or x.Type = 3 Then 'Chemin à adapter ThisWorkbook.VBProject.VBComponents(x.Name).Export "c:UsersPowerUser" & x.Name Wk.VBProject.VBComponents.Import "c:UsersPowerUser" & x.Name Kill "c:UsersPowerUser" & x.Name End If Next End Sub '---------------------------------------------
"Pat" a écrit dans le message de groupe de discussion :
Oui c'est ce que je pensais : copier le code dans le module équivalent mais il y en a beaucoup :(( Par contre si tu as une solution macro je suis preneur car de temps en temps je reçois des documents que les gens ont bricolés et je pourrais ainsi tous les remettre conforme d'un clic. En fait je pense qu'ils utilisent une macro perso qui écrase du code dans les miennes, sans le faire exprés. Mais je n'ai jamais trouvé le sub responsable. Je te précise que c'est un menu déroulant personnalisé qui reste grisé et que je ne peux plus utiliser pour rajouter ou supprimer des colonnes (dans mon cas). C'est génant car répétitif et je suis obligé d'ouvrir les macros et d'executer les sub correspondant à la main C'est pour cela que je souhaiterais remettre les fonctions d'origine du menu déroulant neutralisé. Je n'ai pas compris pourquoi le menu reste grisé.
Ce qui suit copie toutes les feuilles, le code des module standard, de classe,
les formulaires vers un nouveau classeur.
'---------------------------------------------
Sub Copie_Vers_Autre_Classeur()
Dim Wk As Workbook, Texte As String
'Copie toutes les feuilles vers un autre classeur vide
Sheets.Copy
Set Wk = ActiveWorkbook
For Each x In ThisWorkbook.VBProject.VBComponents
'Copie le code des feuilles et du ThisWorkbook
If x.Type = 100 Then
With x.CodeModule
Texte = .Lines(1, .CountOfLines)
End With
With Wk.VBProject.VBComponents(x.Name).CodeModule
.AddFromString Texte
End With
Texte = ""
'pour les modules standard et de classe et formulaire
'Exportation -> importation
ElseIf x.Type = 1 Or x.Type = 2 Or x.Type = 3 Then
'Chemin à adapter
ThisWorkbook.VBProject.VBComponents(x.Name).Export "c:UsersPowerUser" & x.Name
Wk.VBProject.VBComponents.Import "c:UsersPowerUser" & x.Name
Kill "c:UsersPowerUser" & x.Name
End If
Next
End Sub
'---------------------------------------------
"Pat" <Pat@Merci.fr> a écrit dans le message de groupe de discussion :
uheF2ijfJHA.5572@TK2MSFTNGP02.phx.gbl...
Oui c'est ce que je pensais : copier le code dans le module équivalent mais
il y en a beaucoup :((
Par contre si tu as une solution macro je suis preneur car de temps en temps
je reçois des documents que les gens ont bricolés et je pourrais ainsi tous
les remettre conforme d'un clic.
En fait je pense qu'ils utilisent une macro perso qui écrase du code dans
les miennes, sans le faire exprés.
Mais je n'ai jamais trouvé le sub responsable.
Je te précise que c'est un menu déroulant personnalisé qui reste grisé et
que je ne peux plus utiliser pour rajouter ou supprimer des colonnes (dans
mon cas).
C'est génant car répétitif et je suis obligé d'ouvrir les macros et
d'executer les sub correspondant à la main
C'est pour cela que je souhaiterais remettre les fonctions d'origine du menu
déroulant neutralisé. Je n'ai pas compris pourquoi le menu reste grisé.
Ce qui suit copie toutes les feuilles, le code des module standard, de classe, les formulaires vers un nouveau classeur.
'--------------------------------------------- Sub Copie_Vers_Autre_Classeur() Dim Wk As Workbook, Texte As String
'Copie toutes les feuilles vers un autre classeur vide Sheets.Copy Set Wk = ActiveWorkbook
For Each x In ThisWorkbook.VBProject.VBComponents 'Copie le code des feuilles et du ThisWorkbook If x.Type = 100 Then With x.CodeModule Texte = .Lines(1, .CountOfLines) End With With Wk.VBProject.VBComponents(x.Name).CodeModule .AddFromString Texte End With Texte = "" 'pour les modules standard et de classe et formulaire 'Exportation -> importation ElseIf x.Type = 1 Or x.Type = 2 Or x.Type = 3 Then 'Chemin à adapter ThisWorkbook.VBProject.VBComponents(x.Name).Export "c:UsersPowerUser" & x.Name Wk.VBProject.VBComponents.Import "c:UsersPowerUser" & x.Name Kill "c:UsersPowerUser" & x.Name End If Next End Sub '---------------------------------------------
"Pat" a écrit dans le message de groupe de discussion :
Oui c'est ce que je pensais : copier le code dans le module équivalent mais il y en a beaucoup :(( Par contre si tu as une solution macro je suis preneur car de temps en temps je reçois des documents que les gens ont bricolés et je pourrais ainsi tous les remettre conforme d'un clic. En fait je pense qu'ils utilisent une macro perso qui écrase du code dans les miennes, sans le faire exprés. Mais je n'ai jamais trouvé le sub responsable. Je te précise que c'est un menu déroulant personnalisé qui reste grisé et que je ne peux plus utiliser pour rajouter ou supprimer des colonnes (dans mon cas). C'est génant car répétitif et je suis obligé d'ouvrir les macros et d'executer les sub correspondant à la main C'est pour cela que je souhaiterais remettre les fonctions d'origine du menu déroulant neutralisé. Je n'ai pas compris pourquoi le menu reste grisé.
Pat
Merci, je vais adapter le sub à mon répertoire et tester.
Merci, je vais adapter le sub à mon répertoire et tester.
Merci, je vais adapter le sub à mon répertoire et tester.
Pat
La macro ne fonctionne pas et génère l'erreur : la méthode à échouée au niveau de la ligne "For Each x In ThisWorkbook.VBProject.VBComponents". Je n'ai pas pu tester plus loin Encore merci
La macro ne fonctionne pas et génère l'erreur : la méthode à échouée au
niveau de la ligne "For Each x In ThisWorkbook.VBProject.VBComponents".
Je n'ai pas pu tester plus loin
Encore merci
La macro ne fonctionne pas et génère l'erreur : la méthode à échouée au niveau de la ligne "For Each x In ThisWorkbook.VBProject.VBComponents". Je n'ai pas pu tester plus loin Encore merci
michdenis
| For Each x In ThisWorkbook.VBProject.VBComponents
Il n'y a aucune raison d'avoir une erreur ... Sous excel 2003, barre des menus / outils / macros / sécurité / éditeurs approuvés, Est-ce que les 2 cases à cocher dans le bas de la fenêtre le sont ?
cependant, j'ai apporté une petite modification dans le cas où un des modules feuilles serait vide
'--------------------------------------- Sub Copie_Vers_Autre_Classeur() Dim Wk As Workbook, Texte As String Dim x As Objects 'Copie toutes les feuilles vers un autre classeur vide Sheets.Copy Set Wk = ActiveWorkbook
On Error Resume Next For Each x In ThisWorkbook.VBProject.VBComponents 'Copie le code des feuilles et du ThisWorkbook If x.Type = 100 Then With x.CodeModule Texte = .Lines(1, .CountOfLines) End With If Err = 0 Then With Wk.VBProject.VBComponents(x.Name).CodeModule .AddFromString Texte End With Else Err = 0 End If Texte = "" 'pour les modules standard et de classe et formulaire 'Exportation -> importation ElseIf x.Type = 1 Or x.Type = 2 Or x.Type = 3 Then 'Chemin à adapter ThisWorkbook.VBProject.VBComponents(x.Name).Export "c:UsersPowerUser" & x.Name Wk.VBProject.VBComponents.Import "c:UsersPowerUser" & x.Name Kill "c:UsersPowerUser" & x.Name End If Next End Sub '---------------------------------------
"Pat" a écrit dans le message de groupe de discussion : eZRvWp# La macro ne fonctionne pas et génère l'erreur : la méthode à échouée au niveau de la ligne "For Each x In ThisWorkbook.VBProject.VBComponents". Je n'ai pas pu tester plus loin Encore merci
| For Each x In ThisWorkbook.VBProject.VBComponents
Il n'y a aucune raison d'avoir une erreur ...
Sous excel 2003, barre des menus / outils / macros / sécurité /
éditeurs approuvés, Est-ce que les 2 cases à cocher dans le bas
de la fenêtre le sont ?
cependant, j'ai apporté une petite modification dans le cas
où un des modules feuilles serait vide
'---------------------------------------
Sub Copie_Vers_Autre_Classeur()
Dim Wk As Workbook, Texte As String
Dim x As Objects
'Copie toutes les feuilles vers un autre classeur vide
Sheets.Copy
Set Wk = ActiveWorkbook
On Error Resume Next
For Each x In ThisWorkbook.VBProject.VBComponents
'Copie le code des feuilles et du ThisWorkbook
If x.Type = 100 Then
With x.CodeModule
Texte = .Lines(1, .CountOfLines)
End With
If Err = 0 Then
With Wk.VBProject.VBComponents(x.Name).CodeModule
.AddFromString Texte
End With
Else
Err = 0
End If
Texte = ""
'pour les modules standard et de classe et formulaire
'Exportation -> importation
ElseIf x.Type = 1 Or x.Type = 2 Or x.Type = 3 Then
'Chemin à adapter
ThisWorkbook.VBProject.VBComponents(x.Name).Export "c:UsersPowerUser" & x.Name
Wk.VBProject.VBComponents.Import "c:UsersPowerUser" & x.Name
Kill "c:UsersPowerUser" & x.Name
End If
Next
End Sub
'---------------------------------------
"Pat" <Pat@Merci.fr> a écrit dans le message de groupe de discussion :
eZRvWp#fJHA.5328@TK2MSFTNGP06.phx.gbl...
La macro ne fonctionne pas et génère l'erreur : la méthode à échouée au
niveau de la ligne "For Each x In ThisWorkbook.VBProject.VBComponents".
Je n'ai pas pu tester plus loin
Encore merci
| For Each x In ThisWorkbook.VBProject.VBComponents
Il n'y a aucune raison d'avoir une erreur ... Sous excel 2003, barre des menus / outils / macros / sécurité / éditeurs approuvés, Est-ce que les 2 cases à cocher dans le bas de la fenêtre le sont ?
cependant, j'ai apporté une petite modification dans le cas où un des modules feuilles serait vide
'--------------------------------------- Sub Copie_Vers_Autre_Classeur() Dim Wk As Workbook, Texte As String Dim x As Objects 'Copie toutes les feuilles vers un autre classeur vide Sheets.Copy Set Wk = ActiveWorkbook
On Error Resume Next For Each x In ThisWorkbook.VBProject.VBComponents 'Copie le code des feuilles et du ThisWorkbook If x.Type = 100 Then With x.CodeModule Texte = .Lines(1, .CountOfLines) End With If Err = 0 Then With Wk.VBProject.VBComponents(x.Name).CodeModule .AddFromString Texte End With Else Err = 0 End If Texte = "" 'pour les modules standard et de classe et formulaire 'Exportation -> importation ElseIf x.Type = 1 Or x.Type = 2 Or x.Type = 3 Then 'Chemin à adapter ThisWorkbook.VBProject.VBComponents(x.Name).Export "c:UsersPowerUser" & x.Name Wk.VBProject.VBComponents.Import "c:UsersPowerUser" & x.Name Kill "c:UsersPowerUser" & x.Name End If Next End Sub '---------------------------------------
"Pat" a écrit dans le message de groupe de discussion : eZRvWp# La macro ne fonctionne pas et génère l'erreur : la méthode à échouée au niveau de la ligne "For Each x In ThisWorkbook.VBProject.VBComponents". Je n'ai pas pu tester plus loin Encore merci
Pat
Non je n'avais que la première case cochée. Je coche donc les 2. J'essaye demain avec ta modif. car en effet il y a 2 feuilles vides en fin des classeurs Encore merci
Non je n'avais que la première case cochée. Je coche donc les 2.
J'essaye demain avec ta modif. car en effet il y a 2 feuilles vides en fin
des classeurs
Encore merci
Non je n'avais que la première case cochée. Je coche donc les 2. J'essaye demain avec ta modif. car en effet il y a 2 feuilles vides en fin des classeurs Encore merci