• Initiateur de la discussion Initiateur de la discussion santille
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

santille

Guest
Bonjour,

La macro qui se trouve dans le fichier en pièce jointe permet d'exporter des lignes d'une feuille à l'autre selon un critère prédéfini.
Voici cette macro :

Sub copie()
'Macro Dan pour
Dim dlg As Integer, i As Integer, lig As Integer
dlg = Sheets("Feuil1").Range("A65536").End(xlUp).Row
lig = Sheets("Feuil2").Range("A65536").End(xlUp).Row
If lig <> 1 Then Sheets("Feuil2").Range("A4:G" & lig).ClearContents
lig = 2
For i = 2 To dlg
If Sheets("Feuil1").Range("A" & i) = "92.05.06." Then Sheets("Feuil1").Range("A" & i & ":G" & i).Copy Sheets("Feuil2").Range("A" & lig)
lig = lig + 1
Next

End Sub

Cette macro ne me permet que de mettre une variable à la fois et de faire qu'une exportation de la feuille 1 à la feuille 2.
Je voudrais pouvoir automatiser/optimiser cela en donnant la possibilité à l'utilisateur, sur la feuille 1, d'entrer une valeur et un endroit d'export. Par exemple, l'utilisateur entre dans une case le Numero 00.00. et dans une autre Feuil4 et appuie sur un bouton exécuter.
Y-a-t-il un moyen de faire cela?

Merci de votre aide.

seb
 

Pièces jointes

Re : Macro-feuille

Bonjour,
Si j'ai bien compris
Code:
Sub copie()
'Macro Dan pour
Dim Q, dlg As Integer, i As Integer, lig As Integer
Q = InputBox("rentrer le code à copier", "blabla")
If Q = "" Then Exit Sub
dlg = Sheets("Feuil1").Range("A65536").End(xlUp).Row
lig = Sheets("Feuil2").Range("A65536").End(xlUp).Row
If lig <> 1 Then Sheets("Feuil2").Range("A4:G" & lig).ClearContents
lig = 2
For i = 2 To dlg
If Sheets("Feuil1").Range("A" & i) = Q Then Sheets("Feuil1").Range("A" & i & ":G" & i).Copy Sheets("Feuil2").Range("A" & lig)
lig = lig + 1
Next
End Sub
A+
kjin
 
Re : Macro-feuille

Bonjour et Bienvenue sur XLD
Code:
Sub copie()
'Macro Dan pour
Dim dlg As Integer, i As Integer, lig As Integer
dlg = Sheets("Feuil1").Range("A65536").End(xlUp).Row
lig = Sheets("Feuil2").Range("A65536").End(xlUp).Row
If lig <> 1 Then Sheets("Feuil2").Range("A4:G" & lig).ClearContents
lig = 2
rep = InputBox("indiquez le numéro")
ref = InputBox("Quelle Feuille")
For i = 2 To dlg
If Sheets("Feuil1").Range("A" & i) = rep Then Sheets("Feuil1").Range("A" & i & ":G" & i).Copy Sheets(ref).Range("A" & lig)
lig = lig + 1
Next
End Sub
 
Re : Macro-feuille

Merci.

Votre script marche à la première entrée de données.
Par exemple, Numéro 00.00. puis feuille Feuil2.
Mais si je veux faire une 2ème saisie, Numéro 01.01. pour Feuil3 cela ne fonctionne plus : il ne remplit pas la feuille 3 et efface la manipulation précédente.

Merci de votre aide.

seb
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
756
Réponses
15
Affichages
791
Réponses
2
Affichages
468
Retour