Macro exportation feuille

Résolu/Fermé
santille - 20 mars 2014 à 15:05
santille Messages postés 9 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 mars 2014 - 24 mars 2014 à 09:09
Bonjour,

La macro qui se trouve ci-dessous 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
A voir également:

11 réponses

via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
20 mars 2014 à 19:36
Bonsoir

Plutôt que dans les cellules de la feuille 1 il serait plus judicieux de demander le numero à transférer et la feuille de destination par des inputbox

Ta macro peut être adaptée de cette manière

Sub copie()
Dim dlg As Integer, i As Integer, lig As Integer

numero = InputBox("Numero à transférer")
feuille = InputBox("Nom de la feuille de destination")
ok = 0
For n = 1 To Sheets.Count
If Sheets(n).Name = feuille Then ok = 1
Next
If ok = 0 Then MsgBox ("La feuille " & feuille & " n'existe pas"): Exit Sub


dlg = Sheets("Feuil1").Range("A65536").End(xlUp).Row
lig = Sheets(feuille).Range("A65536").End(xlUp).Row

If lig <> 1 Then Sheets(feuille).Range("A4:G" & lig).ClearContents
lig = 2
For i = 2 To dlg
If Sheets("Feuil1").Range("A" & i) = numero Then Sheets("Feuil1").Range("A" & i & ":G" & i).Copy Sheets(feuille).Range("A" & lig)
lig = lig + 1
Next

End Sub

Ensuite tu crées un bouton sur la feuille 1 et tu fais Visualiser le code pour y mettre ceci pour l'execution de la macro :
Private Sub CommandButton1_Click()
copie
End Sub

Cdlmnt
0
santille Messages postés 9 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 mars 2014
21 mars 2014 à 11:11
OK, merci bien, ça fonctionne.

seb
0
santille Messages postés 9 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 mars 2014
21 mars 2014 à 16:00
Cela fonctionne mais 2 problèmes sont apparus :

1/ il faudrait que je puisse répéter l'opération plusieurs fois sur la même feuille. Par exemple inscrire plusieurs numéros dans la même feuille. Ici, il n'additionne pas les lignes, il efface et met le nouveau numéro à la suite...

2/ j'ai nommé des feuilles de 1 à 11. Si je fais directement l'opération d'insertion de numéro sur la Feuille 11 par exemple, cela ne fonctionne pas.

Merci de votre aide.

Sébastien
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
21 mars 2014 à 19:09
1) c'est normal la macro que tu avais fourni efface les lignes avant de copier
si tu ne veux plus d'effacement mais des recopies à la suite il faut :
a) supprimer la ligne If lig <> 1 Then Sheets(feuille).Range("A4:G" & lig).ClearContents
b) remplacer la ligne suivante : lig = 2 par lig=lig+1

2) je ne comprends pas la question : que veux tu dire par opération d'insertion de numéro su la feuille 11 ?
La macro est conçue pour transferer de la feuille 1 à n'importe quelle autre feuille
si tu veux mettre des boutons sur d'autres feuilles et transferer à partir de ces feuilles il faut remplacer les Sheets("Feuil1") dans la macro par ActiveSheet
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
santille Messages postés 9 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 mars 2014
21 mars 2014 à 22:42
OK pour le point 1.
Mais pour le point 2, je confirme : si j'entre un numéro et que je sélectionne la feuille 11, il n'y pas d'export.
Les lignes comportant ce numéro n'apparaissent pas dans la feuille 11.

merci.

seb
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
21 mars 2014 à 23:23
Difficile à dire ce qui cloche sans voir ton fichier !
Es tu sur que le nom que tu rentres dans l'inputbox est bien le même que celui de la feuille 11 ?
As tu essayé avec d'autres feuille 12, 13 etc?
0
santille Messages postés 9 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 mars 2014
22 mars 2014 à 20:24
Oui, cela fait avec les autres feuilles.
Y-a-t-il un moyen pour que je puisse te transmettre le fichier étant donné qu'il n'y a pas d'option de pièce jointe?
Eventuellement ton mail?

Merci encore.

seb
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
22 mars 2014 à 21:14
Bonsoir

Tu postes ton fichier allégé et anonymé sur transfernow.net ou cjoint.com et tu indiques ensuite ici le lien fourni

Cdlmnt
0
santille Messages postés 9 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 mars 2014
22 mars 2014 à 22:24
OK.

Voici le lien :

transfernow.net/fr/3s4q90869r86

Merci.

seb
0
via55 Messages postés 14476 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 septembre 2024 2 729
Modifié par via55 le 22/03/2014 à 23:43
Voilà le fichier

Légèrement modifié la macro pour que la recherche de la dernière ligne vide fonctionne sur toutes versions
J'ai également shunté la ligne de macro qui effaçait les lignes précédentes en mettant un ' devant qu'il suffira de supprimer si tu veux de nouveau rendre cette ligne active

https://www.transfernow.net/files/?utm_source=56jwf32lyfg0&utm_medium=&utm_content=fr
Le transfert se fait bien sur toutes les feuilles y compris sur la Feuil11 que j'ai crée

Cdlmnt
0
santille Messages postés 9 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 24 mars 2014
24 mars 2014 à 09:09
Super.

Je crois que j'ai tout ce qu'il me fallait.

Merci bien de ton aide et bonne journée.

seb
0