Récupérer code VBA d'une feuille Excel pour le coller ailleurs

Bonsoir,

Je suis à la recherche d'une méthode pour copier le code VBA contenu dans une feuille EXCEL afin de pouvoir le coller dans une autre feuille EXCEL (dans le même classeur). Est-ce possible ? Comment s'y prendre ?

image J'ai vu des forums qui évoquent CodeModule, VbComponents... mais j'avoue que je suis perdu.

Merci à celles et ceux qui pourront me venir en aide !

JB

Bonjour,

met plutôt ton code dans ThisWorkbook et teste le sh.Name pour savoir s'il faut l'appliquer à la feuille ayant créé l'événement.
eric

Edit: j'ai peut-être répondu un peu vite. Il faudrait savoir quel est le code. Mais normalement on ne doit y trouver que du code sur les événement

Bonjour Eric,

C'est pour un projet déjà existant avec plus de 70 feuilles. Le code est lié à des gestions de click gauches, droits + gestion d'image visible ou non...

Donc si possible, je proférerais recopier le code présent sous la feuille pour le coller sur les autres.

Merci beaucoup

JB

Bonjour JeanBatisteP, eriiic, le forum,

je préférerai recopier le code présent sur la feuille pour le coller sur les autres

Un essai...

Sub AjoutCode()
 Dim code As String, i%

  With ThisWorkbook.VBProject.VBComponents("Feuil1").CodeModule 'code à copier (nom de la feuille à adapter)
    code = .Lines(1, .CountOfLines)
  End With

  For i = 1 To Sheets.Count 'boucle  sur les feuilles
   If Sheets(i).Name <> "Feuil1" Then
    With ThisWorkbook.VBProject.VBComponents(Sheets(i).CodeName).CodeModule 
    .AddFromString code 'colle le code
    End With
   End If
  Next i
End Sub

Cordialement,

Bonjour Xorsankukai,

Merci pour votre proposition mais j'ai un message d'erreur :(

image

Que faire ?

JB

Donc si possible, je proférerais recopier le code présent sous la feuille pour le coller sur les autres.

ce n'est pas une bonne idée.
ThisWorkbook est fait pour ça.
Un code unique pour toutes les feuilles que tu décides.
Et une mise à jour simplifiée en prime plutôt que d'avoir 70 code à modifier.
Enfin fais comme tu veux, je te laisse continuer là dessus...
eric

Bonjour à tous,

En fait, c'est moi qui ai répondu un peu vite sans prendre le temps de la réflexion,

Je ne peux que rejoindre l'avis d' eriiic (), un code unique applicable aux feuilles concernées, est bien plus simple à gérer.

Néanmoins, si tu souhaites poursuivre sur cette voie, qui risque de te générer des erreurs , essaie de cocher la case surlignée ci-dessous

image
@eriiic : étant autodidacte, j'aimerai profiter de ta présence pour te demander:
Quelle serait la syntaxe pour ne copier que le code d'une macro nommée "test" (au lieu de copier tout le module de la feuille) ?
Merci.

Cordialement,

D'accord je vais suivre vos conseils, merci beaucoup en tout cas :)

Petite question hors sujet: Comment faire pour ajouter la colonne N&lig dans cette ligne de code en supplément de la plage ("C:D")?

Range("C" & Lig & ":D" & Lig).Copy

Ce sera tout, je clôturerai le sujet après :)

Bonne fin de journée

JB

Je reprends la fin du Fil,

Comme ceci

Range("C" & Lig & ":D" & Lig, "N" & Lig).Copy Range...souhaité

Bonsoir,
Salut xorsankukai,

Je t'avoue que c'est un sport que j'évite de pratiquer
Je trouve ça un peu lourdingue à mettre en oeuvre et peu documenté. "vba en vba", google a du mal à comprendre...
On peut avoir la ligne de début et le nombre de ligne d'une macro précise, mais je sais pas si on peut lire ligne à ligne le code (?)
Désolé de ne pouvoir t'en dire plus.
eric

A nouveau,

Je trouve ça un peu lourdingue à mettre en oeuvre et peu documenté

Il existe un site (espagnol de base) mais évidemment traduisible automatiquement par le navigateur: ICI

Et si l'on a beaucoup de temps et une trousse à pharmacie bien fournie en paracétamol voir le début du même site: A suivre

Attention, c'est une encyclopédie, donc très fournie avec de nombreux liens. Cela ne se consulte pas en une soirée. Prévoyez une année.

Avec des pauses...

Bonsoir à tous,


Merci eriiic pour ton retour, je me disais bien que je m'étais aventuré dans une drôle de galère,

Ceci dit, cela semble fonctionner chez moi,


@ X Cellus : ay caremba ! Mi cabeza ..........


Bonne soirée à tous,

Merci à vous tous pour vos retours, bonne soirée :)

Bonjour,

X Cellus j'ai été voir tes liens mais je n'y vois pas de page sur la programmation de modules en VBA.
Je cherche mal ?

Je ne trouve que l'aide en ligne vba d'une ancienne version.
Ceci dit, elle a son avantage. Il y a les exemples d'utilisation qu'on n'y (presque) trouve plus maintenant. J'ai capturé cette partie de site
eric

Bonsoir Eriiic, Le Fil,

En fait il cliquer sur Page suivante (voire précédente) car souvent une page présente juste des infos brèves et générales.

Mais ce site y va doucement pour expliquer. Et regarder aussi la colonne de Gauche. Une sorte de table de matières.

Exemple: la méthode InsertLines. Voir InsertLines

Quand j'ai un peu de temps, je regarde et je prends note. Mais le sujet est vaste...

Rechercher des sujets similaires à "recuperer code vba feuille coller ailleurs"