Ajouter code automatiquement dans une macro

Steeve

XLDnaute Nouveau
Bonjour à tous,
Je vous explique donc mon problème. A l'exécution d'une macro, j'aimerai que le code suivant ce copie dans une autre :

With Sheets("Nom_entré_précédemment") 'Feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 2 To NbrLig ' n° de la 1ere ligne de données
If .Cells(Lig, Col).Value <> "" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Sheets("Matériel non conforme").Cells(NumLig, 1).Insert Shift:=xlDown
End If
Next
End With

Et à la place de "Nom_entré_précédemment", je veux que cela se change par un nom entré au préalable dans une ComboBox. J'espère que j'ai été assez clair et que je vous me comprendrai.

En l'attente de réponse, je vous remercie d'avance!
Steeve.
 

pierrejean

XLDnaute Barbatruc
Re : Ajouter code automatiquement dans une macro

Bonjour Steeve

Bien que probablement possible , ce que tu demandes est du domaine des grands pros
Par contre si tu nous en dit un peu plus , fichier exemple à l'appui , on pourra surement trouver une solution à notre portée
 

JNP

XLDnaute Barbatruc
Re : Ajouter code automatiquement dans une macro

Bonsoir Steeve, salut Pierre-Jean :),
Si, facilement faisable, fait des recherches sur les termes suivants :
VBProject
VBComponents
CodeModule
DeleteLines
InsertLines
Tu trouveras un certain nombre d'exemples sur le forum :p...
A noter qu'il faut que "Accès approuvé au modèle d'objet du projet VBA" soit coché dans les options :rolleyes:...
Bon courage :cool:
 

sousou

XLDnaute Barbatruc
Re : Ajouter code automatiquement dans une macro

Bonjour à tous
L'exemple ci-dessous pourra peut-être t'aider dan ta démarche.
Il fait partie d'une macro qui crée un nouveau userform et va y coller du code sous la forme d'une chaine de texte.
Mais avec codemodule tu peux insérer , supprimer ou modifier des lignes.
Évidemment les variable et nom de feuilles.. ici sont celle de mon application


Application.VBE.ActiveVBProject.VBComponents(nouveauuser.Name).CodeModule.AddFromString ( _
"Private Sub UserForm_Initialize()" & Chr(13) & _
"listuser.Clear" & Chr(13) & _
"With ThisWorkbook.Sheets(fbd)" & Chr(13) & _
"dernièreligne = Fdernièreligne(fbd,1)" & Chr(13) & _
"Set zone = .Range(.Cells(2, colllistuser), .Cells(dernièreligne+1, colllistuser))" & Chr(13) & _
"For Each i In zone" & Chr(13) & _
"listuser.AddItem i.Value" & Chr(13) & _
"Next" & Chr(13) & _
"me.ajouter.enabled=true" & Chr(13) & _
"End With" & Chr(13) & _
"End Sub")

Pas vue JNP!!
 

Hulk

XLDnaute Barbatruc
Re : Ajouter code automatiquement dans une macro

Slt Steeve, Pierrejean :), Jnp :), Forum,

Je ne sais pas si quelqu'un a compris, mais voilà ce que moi j'ai cru comprendre..

Tu listes les feuilles dans une ComboBox avec ce code..
Code:
Private Sub UserForm_Initialize()
    
    Dim WS As Worksheet
    
    'Ici il va lister les feuilles, sauf la feuille "Nom_entré_précédemment"
    For Each WS In Worksheets
        If WS.Name <> ("Nom_entré_précédemment") Then
            ComboBox1.AddItem WS.Name
        End If
    Next
    
End Sub
Puis ton code se transforme comme ceci...
Code:
Private Sub CommandButton1_Click()
    
    'Ici appel de la feuille choisie dans la ComboBox
    With Sheets(ComboBox1.Value) 'Feuille source
        NbrLig = .Cells(65536, Col).End(xlUp).Row
        For Lig = 2 To NbrLig ' n° de la 1ere ligne de données
            If .Cells(Lig, Col).Value <> "" Then
                .Cells(Lig, Col).EntireRow.Copy
                NumLig = NumLig + 1
                Sheets("Matériel non conforme").Cells(NumLig, 1).Insert Shift:=xlDown
            End If
        Next
    End With
    
End Sub
Mais évidemment ton "col" on ne sait pas ce que c'est... et vrai que sans fichier joint, difficile de savoir si on est dans le juste.
 
Dernière édition:

Steeve

XLDnaute Nouveau
Re : Ajouter code automatiquement dans une macro

Bonjour à tous, merci de votre attention concernant mon problème.
Je viens de faire un fichier simplifier pour que vous compreniez mieux ce que je vais faire.

Donc lorsque je clique sur ajouter un agent qui se trouve sur l'onglet Accueil, un Userform s'ouvre, je complète donc par les infos et lorsque je valide, je voudrai que le code dont je vous parlais s'ajoute dans le module 8. Ce nouveau code servira donc à rechercher dans le nouvel onglet créé, les appareils non conforme..

Rappel du code:

With Sheets("Agent1") 'Feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 2 To NbrLig ' n° de la 1ere ligne de données
If .Cells(Lig, Col).Value <> "" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Sheets("Matériel non conforme").Cells(NumLig, 1).Insert Shift:=xlDown
End If
Next
End With

Donc j'aimerai que dans le With Sheets, Agent1 soit changé par la valeur inscrite dans le TextBox_Nom précédemment ..

En résumé, je créé un nouvel agent (nouvel onglet se créant automatiquement) et j'aimerai que l'on me recherche les appareils non conforme dans ce nouvel onglet, c'est pour cela que j'aimerai que le code ci dessus se copie automatiquement en modifiant la valeur de l'onglet ..

J'espère que j'ai été assez clair :)
Merci d'avance, Steeve.
 

Pièces jointes

  • Exemple.xlsm
    262.6 KB · Affichages: 73
  • Exemple.xlsm
    262.6 KB · Affichages: 68
  • Exemple.xlsm
    262.6 KB · Affichages: 71

Steeve

XLDnaute Nouveau
Re : Ajouter code automatiquement dans une macro

Bonjour Pierrejean, la macro sera activée lorsque j''aurai créé le nouvel agent, donc la commande se trouvera dans le CommandButton1_Click de la UserForm "Ajout_agent". C'est assez complexe à expliquer, mais j'espère que je me suis fait comprendre :)
 

pierrejean

XLDnaute Barbatruc
Re : Ajouter code automatiquement dans une macro

Re
teste ce fichier

Le code sera a modifier pour insertion
 

Pièces jointes

  • Exemple.xlsm
    541.7 KB · Affichages: 71
  • Exemple.xlsm
    541.7 KB · Affichages: 75
  • Exemple.xlsm
    541.7 KB · Affichages: 79

Steeve

XLDnaute Nouveau
Re : Ajouter code automatiquement dans une macro

Re, merci pour la peine que tu te donnes.
J'ai essayé ton fichier mais ce n'est pas trop ce que je recherche, là il recherche l'appareil non conforme à l'instant où on le crée; et donc par la suite lorsque je retourne dans mon onglet "Appareil non conforme", je ne pourrai pas retrouver l'appareil qui n'est pas conforme venant de l'agent qui a été créé récemment ..
C'est pour cela que j'aimerai que le code que j'ai donné ci dessus, ce copie automatiquement dans le module 8, pour que lorsque je vais sur l'onglet "Appareil non conforme", la recherche s'effectue également dans les nouveaux agents ..

Me comprends tu?
Merci d'avance.
 

Steeve

XLDnaute Nouveau
Re : Ajouter code automatiquement dans une macro

Voilà j'aimerai que le code ci dessous, s'ajoute dans une macro1 lorsque la macro2 s'active par exemple :)

With Sheets("TextBox_Nom.value") 'Feuille source
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 2 To NbrLig ' n° de la 1ere ligne de données
If .Cells(Lig, Col).Value <> "" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Sheets("Matériel non conforme").Cells(NumLig, 1).Insert Shift:=xlDown
End If
Next
End With
 

Steeve

XLDnaute Nouveau
Re : Ajouter code automatiquement dans une macro

Je veux tout "simplement" que lorsque je créé un agent, la recherche du matériel non conforme ce fasse aussi dans l'onglet du nouvel agent ..
Cela fait deux semaines que je suis là dessus, étant débutant en vba j'ai testé différentes choses trouvé sur internet mais sans succés malheureusement pour moi. Si quelqu'un à quelque chose à me proposer, je suis preneur bien entendu !

Sur ce, bon appétit à vous.
Steeve.
 

Fo_rum

XLDnaute Accro
Re : Ajouter code automatiquement dans une macro

Bonjour,

pourquoi ne pas passer par une macro commune à toutes les feuilles (même les nouvelles) ?
Une macro dans ThisWorkbook peut suffire. D'ailleurs on peut aussi remplacer des tas de boutons.
Un exemple avec l’évènement DoubleClic.
 

Pièces jointes

  • MacrosCommunes.xlsm
    234.9 KB · Affichages: 71

Steeve

XLDnaute Nouveau
Re : Ajouter code automatiquement dans une macro

Bonjour Fo_rum,
J'ai testé ton fichier, lorsque j'ajoute un nouvel agent, il n'est pas pris en compte dans "Matériel non conforme" ..
C'est ça qui est vraiment important pour moi, donc si tu as une solution je suis preneur :)
Et c'est plutôt pas mal pour le bouton Accueil, je ne savais pas que l'on pouvait faire ça, pareil pour le "vérifié", tu ne sais pas si par exemple on fait le double clique en N3 et que par conséquent, en J3 s'affiche la date d'aujourd'hui? Ce serait super ça !

Merci d'avance, Steeve.
 

Discussions similaires

Statistiques des forums

Discussions
312 400
Messages
2 088 090
Membres
103 718
dernier inscrit
jerome.elfenniche@hotmail