Sélection automatique dune ligne lorsqu'un nombre est ajouter
Résolu
danpoo
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
danpoo Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
danpoo Messages postés 37 Date d'inscription Statut Membre Dernière intervention -
Voila j'ai une liste comme suit et pour les besoins de la cause j'ai réduit le nombres de cellule car j'ai plus de cellules prix que ceux indiqué mais bon..
je voudrait faire en sorte que quand une quantité (QTY) est inséré, que la ligne ou les cellules préalablement choisi soit copié dans une autre feuilles de façon a n'avoir que les lignes qui ont un ajout de quantité pour pouvoir facturer ce qui a été utilisé.
IDR (détail) IDR (détail) QTY
MODEL # PIECE DIMENSION PRIX/CHQ PRIX/BTE Utilisé
1401-005 ½ 1,82 $ 89,10 $
1401-007 ¾ 1,91 $ 93,50 $ 5
TÉ 1401-010 1`` 2,50 $ 61,05 $ 4
1401-012 1¼ 3,94 $ 38,50 $
1401-015 1½ 4,46 $ 43,56 $
1401-020 2`` 8,75 $ 5,58 $
je voudrait faire en sorte que quand une quantité (QTY) est inséré, que la ligne ou les cellules préalablement choisi soit copié dans une autre feuilles de façon a n'avoir que les lignes qui ont un ajout de quantité pour pouvoir facturer ce qui a été utilisé.
IDR (détail) IDR (détail) QTY
MODEL # PIECE DIMENSION PRIX/CHQ PRIX/BTE Utilisé
1401-005 ½ 1,82 $ 89,10 $
1401-007 ¾ 1,91 $ 93,50 $ 5
TÉ 1401-010 1`` 2,50 $ 61,05 $ 4
1401-012 1¼ 3,94 $ 38,50 $
1401-015 1½ 4,46 $ 43,56 $
1401-020 2`` 8,75 $ 5,58 $
A voir également:
- Sélection automatique dune ligne lorsqu'un nombre est ajouter
- Réponse automatique thunderbird - Guide
- Partager photos en ligne - Guide
- Word ligne horizontale automatique - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
11 réponses

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
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.
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 :)
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
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
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
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
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.
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é!!
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
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é!
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!!
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