Sélection automatique dune ligne lorsqu'un nombre est ajouter
Résolu/Fermé
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
-
4 août 2016 à 18:38
danpoo Messages postés 37 Date d'inscription vendredi 29 avril 2016 Statut Membre Dernière intervention 1 juillet 2017 - 26 août 2016 à 18:16
danpoo Messages postés 37 Date d'inscription vendredi 29 avril 2016 Statut Membre Dernière intervention 1 juillet 2017 - 26 août 2016 à 18:16
A voir également:
- Sélection automatique dune ligne lorsqu'un nombre est ajouter
- Aller à la ligne excel - Guide
- Partager photos en ligne - Guide
- Message automatique thunderbird - Guide
- Site de vente en ligne particulier - Guide
- Ajouter un compte gmail - Guide
11 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
4 août 2016 à 22:42
4 août 2016 à 22:42
Bonjour,
Pas compris grand chose : pourrais-tu nous le reformuler autrement ?
Pas compris grand chose : pourrais-tu nous le reformuler autrement ?
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
12 août 2016 à 17:02
12 août 2016 à 17:02
je sais pas si l'image fonctionne mais bon.... si vous voyer j'ai besoin de recopier automatiquement les colonnes B-C-D-E (SI) M contient une valeur plus grande que 0
ma liste de depart se trouve sous le nom ``Prix`` et la recopie doit se retrouver dans ``FACTURE``pas obligé de mettre la couleur dans les cellules j'en ai mis seulement pour vous montrer
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
16 août 2016 à 23:20
16 août 2016 à 23:20
Bonjour,
Si j'ai bien interprété ton image, cela devrait faire ce que tu veux :
Si tu lances plusieurs fois les lignes sont dupliquées.
Si j'ai bien interprété ton image, cela devrait faire ce que tu veux :
Public Sub copie() Dim tbd Dim lig As Long, idx As Long, col As Long With Sheets("Prix") tbd = .Cells(1, 1).Resize(.Cells(Rows.Count, 2).End(xlUp).Row, _ .Cells(2, Columns.Count).End(xlToLeft).Column).Value End With With Sheets("FACTURE") lig = .UsedRange.Rows.Count + 1 For idx = 1 To UBound(tbd) If IsNumeric(tbd(idx, 13)) And tbd(idx, 13) > 0 Then For col = 2 To 5 .Cells(lig, col).Value = tbd(idx, col) Next col lig = lig + 1 End If Next idx End With End Sub
Si tu lances plusieurs fois les lignes sont dupliquées.
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
22 août 2016 à 16:43
22 août 2016 à 16:43
super fonctionne!! merci!!
si je peut peaufiner un peu, peut ton inclure l’entête permanente dans la macro comme sur la photo les 2 premières ligne serais vraiment génial.
un gros merci pour votre aide c'est très apprécié!
si je peut peaufiner un peu, peut ton inclure l’entête permanente dans la macro comme sur la photo les 2 premières ligne serais vraiment génial.
un gros merci pour votre aide c'est très apprécié!
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
22 août 2016 à 17:16
22 août 2016 à 17:16
si possible aussi garder mise en forme et tout les cadrages.
mais si je pousse trop fort faut me le dire loll :)
mais si je pousse trop fort faut me le dire loll :)
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
22 août 2016 à 21:48
22 août 2016 à 21:48
Bonsoir,
peut ton inclure l’entête permanente
J'espère avoir compris que tu veux toujours la copier mais toujours en-tête, c'est comme ceci :
peut ton inclure l’entête permanente
J'espère avoir compris que tu veux toujours la copier mais toujours en-tête, c'est comme ceci :
Public Sub copie() Dim tbd Dim lig As Long, idx As Long, col As Long With Sheets("Prix") tbd = .Cells(1, 1).Resize(.Cells(Rows.Count, 2).End(xlUp).Row, _ .Cells(2, Columns.Count).End(xlToLeft).Column).Value .Rows(1).Resize(2).Copy End With With Sheets("FACTURE") With .Cells(1, 1) .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteColumnWidths End With Application.CutCopyMode = False lig = .UsedRange.Rows.Count + 1 For idx = 1 To UBound(tbd) If IsNumeric(tbd(idx, 13)) And tbd(idx, 13) > 0 Then For col = 2 To 5 .Cells(lig, col).Value = tbd(idx, col) Next col lig = lig + 1 End If Next idx End With End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
23 août 2016 à 18:51
23 août 2016 à 18:51
est-t-il possible d'inclure plusieusr feuilles dans le code
With Sheets ("Prix")
Genre:
With Sheets ("1") ("2") ("3") .........
comment l'écrire si c'est possible
With Sheets ("Prix")
Genre:
With Sheets ("1") ("2") ("3") .........
comment l'écrire si c'est possible
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
23 août 2016 à 21:45
23 août 2016 à 21:45
Bonsoir,
Bien imaginée ta syntaxe, mais elle ne fonctionne pas.
C'est possible de le faire mais il faut faire une boucle sur les feuilles sélectionnées, comme ceci par exemple :
Bien imaginée ta syntaxe, mais elle ne fonctionne pas.
C'est possible de le faire mais il faut faire une boucle sur les feuilles sélectionnées, comme ceci par exemple :
Public Sub copie() Dim lig As Long, idx As Long, col As Long Dim tbd, ndf, feu As Integer ndf = Split("Feuil1,Feuil2,Feuil3", ",") 'feuilles à copier For feu = 0 To UBound(ndf) With Sheets(ndf(feu)) tbd = .Cells(1, 1).Resize(.Cells(Rows.Count, 2).End(xlUp).Row, _ .Cells(2, Columns.Count).End(xlToLeft).Column).Value .Rows(1).Resize(2).Copy End With With Sheets("FACTURE") With .Cells(1, 1) .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteColumnWidths End With Application.CutCopyMode = False lig = .UsedRange.Rows.Count + 1 For idx = 1 To UBound(tbd) If IsNumeric(tbd(idx, 13)) And tbd(idx, 13) > 0 Then For col = 2 To 5 .Cells(lig, col).Value = tbd(idx, col) Next col lig = lig + 1 End If Next idx End With Next feu End Sub
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
24 août 2016 à 02:32
24 août 2016 à 02:32
j'ai une erreur sur la ligne 9 soit:
With Sheets(ndf(feu))
j'ai ajouter mes feuilles je vous recopie le code
Public Sub copie()
Dim lig As Long, idx As Long, col As Long
Dim tbd, ndf, feu As Integer
ndf = Split("RACCORD ET COLLIERS,ÉLECTRONIQUE,TUYAUTERIE,ASPERSEURS ET BUSE,MICRO IRRIGATION,ACCESSOIRES") 'feuilles à copier
For feu = 0 To UBound(ndf)
With Sheets(ndf(feu))
tbd = .Cells(1, 1).Resize(.Cells(Rows.Count, 2).End(xlUp).Row, _
.Cells(2, Columns.Count).End(xlToLeft).Column).Value
.Rows(1).Resize(2).Copy
End With
With Sheets("FACTURE")
With .Cells(1, 1)
.PasteSpecial Paste:=xlPasteAll
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteColumnWidths
End With
Application.CutCopyMode = False
lig = .UsedRange.Rows.Count + 1
For idx = 1 To UBound(tbd)
If IsNumeric(tbd(idx, 14)) And tbd(idx, 14) > 0 Then
For col = 2 To 14
.Cells(lig, col).Value = tbd(idx, col)
Next col
lig = lig + 1
End If
Next idx
End With
Next feu
End Sub
With Sheets(ndf(feu))
j'ai ajouter mes feuilles je vous recopie le code
Public Sub copie()
Dim lig As Long, idx As Long, col As Long
Dim tbd, ndf, feu As Integer
ndf = Split("RACCORD ET COLLIERS,ÉLECTRONIQUE,TUYAUTERIE,ASPERSEURS ET BUSE,MICRO IRRIGATION,ACCESSOIRES") 'feuilles à copier
For feu = 0 To UBound(ndf)
With Sheets(ndf(feu))
tbd = .Cells(1, 1).Resize(.Cells(Rows.Count, 2).End(xlUp).Row, _
.Cells(2, Columns.Count).End(xlToLeft).Column).Value
.Rows(1).Resize(2).Copy
End With
With Sheets("FACTURE")
With .Cells(1, 1)
.PasteSpecial Paste:=xlPasteAll
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
.PasteSpecial Paste:=xlPasteColumnWidths
End With
Application.CutCopyMode = False
lig = .UsedRange.Rows.Count + 1
For idx = 1 To UBound(tbd)
If IsNumeric(tbd(idx, 14)) And tbd(idx, 14) > 0 Then
For col = 2 To 14
.Cells(lig, col).Value = tbd(idx, col)
Next col
lig = lig + 1
End If
Next idx
End With
Next feu
End Sub
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
24 août 2016 à 08:59
24 août 2016 à 08:59
Bonjour,
Lorsque tu modifies pour remplacer par tes feuilles
Par
essaies de garder la syntaxe car si j'ai mis
Lorsque tu modifies pour remplacer par tes feuilles
ndf = Split("Feuil1,Feuil2,Feuil3", ",") 'feuilles à copier
Par
ndf = Split("RACCORD ET COLLIERS,ÉLECTRONIQUE,TUYAUTERIE,ASPERSEURS ET BUSE,MICRO IRRIGATION,ACCESSOIRES") 'feuilles à copier
essaies de garder la syntaxe car si j'ai mis
", ",")ce n'est pas pour enjoliver.
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
Modifié par danpoo le 24/08/2016 à 15:11
Modifié par danpoo le 24/08/2016 à 15:11
Voilà ca fonctionne cela copie et fait le tour de chaque feuille. Mais une fois terminer quand je vais dans ma feuille "FACTURE" j'ai mon entête ensuite j'ai 127 ligne vierge et ensuite j'ai la liste recopié. j'ai effacer et recommencer la copie 5 fois et j'ai toujours les même 127 lignes vierge.
deuxième question si je peut me permettre :)
j'ai 6 feuilles qui se recopie si une quantité ajouté
mais j'ai une entête identique dans chaque feuille.
est-il possible de répété chaque entête lorsque le programme change de feuille a copié. et si je mets disons la première ligne de chaque feuille en mode fusionner centrer est-il facile de programmer le code pour qu'il la prenne cette ligne. voici une image
ne pas tenir compte de la premiere colonne je ne la copie pas dans le code j'ai 14 ligne total sauf enlevé la A qui me donne 13 lignes mais dans le code j'ai mis de 2 to 14
P.S ne pas tenir compte du fait que sur cette exemple dans certaine cellule de la dernière colonne n'ai pas de quantité j'ai recopié manuellement pour exemple. Merci beaucoup pour votre aide c'est très apprécié!!
deuxième question si je peut me permettre :)
j'ai 6 feuilles qui se recopie si une quantité ajouté
mais j'ai une entête identique dans chaque feuille.
est-il possible de répété chaque entête lorsque le programme change de feuille a copié. et si je mets disons la première ligne de chaque feuille en mode fusionner centrer est-il facile de programmer le code pour qu'il la prenne cette ligne. voici une image
ne pas tenir compte de la premiere colonne je ne la copie pas dans le code j'ai 14 ligne total sauf enlevé la A qui me donne 13 lignes mais dans le code j'ai mis de 2 to 14
P.S ne pas tenir compte du fait que sur cette exemple dans certaine cellule de la dernière colonne n'ai pas de quantité j'ai recopié manuellement pour exemple. Merci beaucoup pour votre aide c'est très apprécié!!
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
24 août 2016 à 21:50
24 août 2016 à 21:50
Bonjour,
L'on va peut-être y arriver mais si tu avais posé complètement ta question et répondu à toutes mes questions, cela aurait été plus rapide. J'ai tenu compte de ton en-tête à 3 lignes mais comme tu veux aussi la largeur des colonnes il n'y aura que la dernière feuille qui aura raison, les autres s'aligneront car c'est ainsi dans excel.
L'on va peut-être y arriver mais si tu avais posé complètement ta question et répondu à toutes mes questions, cela aurait été plus rapide. J'ai tenu compte de ton en-tête à 3 lignes mais comme tu veux aussi la largeur des colonnes il n'y aura que la dernière feuille qui aura raison, les autres s'aligneront car c'est ainsi dans excel.
Public Sub copie() Dim lig As Long, idx As Long, col As Long Dim tbd, ndf, feu As Integer Application.DisplayAlerts = False ndf = Split("RACCORD ET COLLIERS,ÉLECTRONIQUE,TUYAUTERIE,ASPERSEURS ET BUSE,MICRO IRRIGATION,ACCESSOIRES", ",") 'feuilles à copier For feu = 0 To UBound(ndf) With Sheets("FACTURE") Cells.Clear lig = 1 End With For feu = 0 To UBound(ndf) With Sheets(ndf(feu)) tbd = .Cells(1, 1).Resize(.Cells(Rows.Count, 2).End(xlUp).Row, _ .Cells(2, Columns.Count).End(xlToLeft).Column).Value .Rows(1).Resize(3).Copy End With With Sheets("FACTURE") With .Cells(lig, 1) .PasteSpecial Paste:=xlPasteAll .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteColumnWidths End With Application.CutCopyMode = False lig = lig + 3 For idx = 1 To UBound(tbd) If IsNumeric(tbd(idx, 13)) And tbd(idx, 13) > 0 Then For col = 2 To 5 .Cells(lig, col).Value = tbd(idx, col) Next col lig = lig + 1 End If Next idx End With Next feu Application.DisplayAlerts = True MsgBox lig - 1 & " lignes copiées" End Sub
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
25 août 2016 à 00:11
25 août 2016 à 00:11
j'ai copié coller tel quel est une erreur ressort
voici limage de la ligne:
Pour les largeurs des colonnes c'est pas tellement important je peut ajuster et/ou de toute façon les feuilles ont tous la même forme et largeur dans l’intégrale seul le contenu est changé.
pour la ligne verte j'ai fusionné et centré les cellules 2 a 14 pour la simplicité de l'ajustement du mot étant inscrit en jaune a l'intérieur.
j'ai ajouté cette ligne après ma demande du code je suis désolé pour les troubles supplémentaire occasionné. votre travail est apprécié!
voici limage de la ligne:
Pour les largeurs des colonnes c'est pas tellement important je peut ajuster et/ou de toute façon les feuilles ont tous la même forme et largeur dans l’intégrale seul le contenu est changé.
pour la ligne verte j'ai fusionné et centré les cellules 2 a 14 pour la simplicité de l'ajustement du mot étant inscrit en jaune a l'intérieur.
j'ai ajouté cette ligne après ma demande du code je suis désolé pour les troubles supplémentaire occasionné. votre travail est apprécié!
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
25 août 2016 à 08:14
25 août 2016 à 08:14
Bonjour,
Tu as une feuille qui n'a que des données vides ?
Tu as une feuille qui n'a que des données vides ?
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
25 août 2016 à 14:18
25 août 2016 à 14:18
Voilà cela fonctionne mais je doit démarrer la macro en étant dans une feuille vierge car si je démarre la macro en étant dans une des page a copié cela efface la feuilles dans laquelle je suis.
Mais en étant dans la dernière feuille vierge que j'ai appeler macro :) et que je démarre la macro dans cette feuille tout est fonctionnel même la fenêtre qui me donne le nombre de ligne copié
Merci! je vais tester ainsi!
Beau Travail!!
Mais en étant dans la dernière feuille vierge que j'ai appeler macro :) et que je démarre la macro dans cette feuille tout est fonctionnel même la fenêtre qui me donne le nombre de ligne copié
Merci! je vais tester ainsi!
Beau Travail!!
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 714
Modifié par gbinforme le 25/08/2016 à 18:38
Modifié par gbinforme le 25/08/2016 à 18:38
Bonsoir,
Au temps pour moi j'ai oublié un point dans ma modification (ligne 10) :
Cela fonctionnera beaucoup mieux ainsi et tu peux lancer depuis n'importe qu'elle feuille.
Désolé du contre temps.
Au temps pour moi j'ai oublié un point dans ma modification (ligne 10) :
.Cells.Clear
Cela fonctionnera beaucoup mieux ainsi et tu peux lancer depuis n'importe qu'elle feuille.
Désolé du contre temps.
danpoo
Messages postés
37
Date d'inscription
vendredi 29 avril 2016
Statut
Membre
Dernière intervention
1 juillet 2017
26 août 2016 à 18:16
26 août 2016 à 18:16
Super la ça fonctionne bien merveilleux merci!!
5 août 2016 à 18:27
quand j'installe je prends en note ce qui a été pris sur le terrain et rendu a la maison je mets au propre avec cette liste. donc la dernière colonne ces la quantité utilisé quand j'ai terminer la liste je prends chaque ligne manuellement et la recopie dans une autre feuille pour n'avoir que les lignes qui on une quantité ajouter.
La question est:
est-ce possible que dès qu'il y a un ajout de quantité dans la dernière colonne que la ligne complète ou cellule sélectionner se recopie automatique dans une autre feuille
5 août 2016 à 18:29