Macro-feuille

santille

XLDnaute Nouveau
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

  • inventaire.xlsm
    27.5 KB · Affichages: 43
  • inventaire.xlsm
    27.5 KB · Affichages: 48
  • inventaire.xlsm
    27.5 KB · Affichages: 45

kjin

XLDnaute Barbatruc
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
 

gilbert_RGI

XLDnaute Barbatruc
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
 

santille

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
312 272
Messages
2 086 689
Membres
103 372
dernier inscrit
BibiCh