Supprimer une ligne existante pas une recherche V
batou25
-
Baptou -
Baptou -
Bonjour,
Je suis sur un fichier Excel et je n'arrive pas à m'en sortir. J'ai 3 feuilles sur mon classeur.
Le premier feuillet correspond à un bon de livraison avec un certain nombre de données qui s'incrémentent automatiquement dans des champs par des boites de dialogues. Ces données proviennent du feuillet n°2. Le point d'entrée de recherche est l'article acheté.
Des boites de dialogues me demandent le code article les quantités et les prix. Puis Excel va chercher les données nécessaires au remplissage du BL dans le second feuillet dont ces données ont été saisies en amont.
Le moment où je bloque est le moment où je dois enlever la ligne correspondant à l'article sur le feuillet 2. Lorsque le point d'entrée a été mis sur un BL. On "solde" ou on archive cette ligne. Je veux que cette ligne se coupe et colle sur un troisième feuillet. De plus il faut que certaines cases se remplissent en automatique.
Il faut donc une recherche V pour retrouver et couper collé la ligne que l'on souhaite, depuis le point d'entrée du bon de livraison.
Avez-vous bien compris mon problème ?
Merci d'avance de vos réponses.
Je suis sur un fichier Excel et je n'arrive pas à m'en sortir. J'ai 3 feuilles sur mon classeur.
Le premier feuillet correspond à un bon de livraison avec un certain nombre de données qui s'incrémentent automatiquement dans des champs par des boites de dialogues. Ces données proviennent du feuillet n°2. Le point d'entrée de recherche est l'article acheté.
Des boites de dialogues me demandent le code article les quantités et les prix. Puis Excel va chercher les données nécessaires au remplissage du BL dans le second feuillet dont ces données ont été saisies en amont.
Le moment où je bloque est le moment où je dois enlever la ligne correspondant à l'article sur le feuillet 2. Lorsque le point d'entrée a été mis sur un BL. On "solde" ou on archive cette ligne. Je veux que cette ligne se coupe et colle sur un troisième feuillet. De plus il faut que certaines cases se remplissent en automatique.
Il faut donc une recherche V pour retrouver et couper collé la ligne que l'on souhaite, depuis le point d'entrée du bon de livraison.
Avez-vous bien compris mon problème ?
Merci d'avance de vos réponses.
A voir également:
- Supprimer une ligne existante pas une recherche V
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Partager photos en ligne - Guide
4 réponses
bonsoir Batou, bonsoir le forum,
"Des boites de dialogues me demandent le code article les quantités et les prix. Puis Excel va chercher les données nécessaires au remplissage du BL dans le second feuillet dont ces données ont été saisies en amont."
C'est à ce moment qu'il faut stocker dans une variable le numéro de ligne correspondant (ou utiliser un tableau de variables si plusieurs lignes) et ensuite utiliser cette variable (ou ce tableau de variables) pour le couper/coller. Mais sans le fichier qui va avec, difficile de t'aider davantage...
"Des boites de dialogues me demandent le code article les quantités et les prix. Puis Excel va chercher les données nécessaires au remplissage du BL dans le second feuillet dont ces données ont été saisies en amont."
C'est à ce moment qu'il faut stocker dans une variable le numéro de ligne correspondant (ou utiliser un tableau de variables si plusieurs lignes) et ensuite utiliser cette variable (ou ce tableau de variables) pour le couper/coller. Mais sans le fichier qui va avec, difficile de t'aider davantage...
Merci pour le lien. Voici le lien vers mon fichier Excel : dans l'idée c'est la même façon de faire que mon vrai fichier, mais en plus simple.
Par contre faire attention avec ce fichier si la macro ne marche pas il faut ouvrir le feuillet deux et normalement c'est bon.
http://www.cjoint.com/15ma/ECFizYLG69D.htm
Merci.
Par contre faire attention avec ce fichier si la macro ne marche pas il faut ouvrir le feuillet deux et normalement c'est bon.
http://www.cjoint.com/15ma/ECFizYLG69D.htm
Merci.
Bonsoir Batou, bonsoir le forum,
Désolé pour le retard... En pièce jointe ton fichier modifié avec le code commenté. J'ai utilisé une UserForm pour gérer les données avec le code ci-dessous :
Le fichier :
https://www.cjoint.com/c/ECFwm5lSmBz
Désolé pour le retard... En pièce jointe ton fichier modifié avec le code commenté. J'ai utilisé une UserForm pour gérer les données avec le code ci-dessous :
Private O1 As Worksheet 'déclare la variable O1 (Onglet 1) Private O2 As Worksheet 'déclare la variable O2 (Onglet 2) Private O3 As Worksheet 'déclare la variable O3 (Onglet 3) Private LI As Integer 'déclare la variable LI (LIgne) Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm Dim DL As Integer 'déclare la variable DL (Dernière Ligne) Set O1 = Sheets("Feuil1 BL") 'définit l'onglet O1 Set O2 = Sheets("Feuil2 Articles achetés") 'définit l'onglet O2 Set O3 = Sheets("Feuil3 Articles retour fourniss") 'définit l'onglet O3 DL = O2.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O2 Me.ComboBox1.List = O2.Range("A2:A" & DL).Value 'alimente la ComboBox1 End Sub Private Sub ComboBox1_Change() 'au changement dans la ComboBox1 LI = Me.ComboBox1.ListIndex + 2 'définit la ligne LI For I = 1 To 7 'boucle sur les 7 premières textboxes 'récupère la valeur de la cellule ligne LI, colonne I + 1 de l'onglet O2 dans la textbox(I) Me.Controls("TextBox" & I).Value = O2.Cells(LI, I + 1) Next I 'prochaie textbox de la boucle Me.TextBox8.SetFocus 'place le curseur dan sla TextBox8 (Motif du Retour) Me.TextBox9.Value = O2.Cells(LI, 5) 'place la Quantité Réceptionnée par défaut dans la TextBox9 (Quantuté Retournée) Me.TextBox10.Value = Date 'renvoie la date du jour par défaut dans la Textbox10 End Sub Private Sub CommandButton1_Click() 'bouton "Valider" Dim LD As Integer 'déclare la variable LD (Ligne de Dstination) Dim I As Byte 'déclare la variable I (Incrément) Dim J As Byte 'déclare la variable J (incrément) 'définit la ligne de destination LD (première ligne vide) de la colonne 1 (=A) de l'onglet O3 LD = O3.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 O1.Cells(1, 2).Value = O1.Cells(1, 2).Value + 1 'incrémente la valeur de la cellule B1 de l'onglet O1 O1.Cells(3, 2).Value = Me.ComboBox1.Value 'renvoie le code article dans la cellule B3 de l'onglet O1 J = 5 'dinitialsie la variable J For I = 1 To 10 'boucle sur les dis textboxes 'renvoie dans la cellule ligne J, colonne 2 de l'onglet O1 la valeur de la TextBox (I) O1.Cells(J, 2).Value = Me.Controls("TextBox" & I).Value J = J + 2 'redéfinit la variable J Next I 'prochaine textbox de la boucle O3.Cells(LD, 1).Value = O1.Cells(3, 2) 'renvoie le code Article dans l'onglet O3 O3.Cells(LD, 2).Value = O1.Cells(5, 2) 'renvoie le Libéllé Article dans l'onglet O3 O3.Cells(LD, 3).Value = O1.Cells(7, 2) 'renvoie le Fournisseur dans l'onglet O3 O3.Cells(LD, 4).Value = O1.Cells(11, 2) 'renvoie la Quantité réceptionnée dans l'onglet O3 O3.Cells(LD, 5).Value = O1.Cells(17, 2) 'renvoie le Numéro de Commande dans l'onglet O3 O3.Cells(LD, 6).Value = O1.Cells(19, 2) 'renvoie le Motif dans l'onglet O3 O3.Cells(LD, 7).Value = O1.Cells(21, 2) 'renvoie la Quantité Retournée dans l'onglet O3 O3.Cells(LD, 8).Value = O1.Cells(23, 2) 'renvoie la Date du Retour dans l'onglet O3 O2.Rows(LI).Delete 'dpprime la ligne Li de l'onglet O2 Unload Me 'vide et ferme l'UserForm End Sub Private Sub CommandButton2_Click() 'bouton "Annuler" Unload Me 'vide et ferme l'UserForm End Sub
Le fichier :
https://www.cjoint.com/c/ECFwm5lSmBz
Alors en fait quand je fais un retour, et que je fais ma fiche de retour, je souhaiterais que la ligne de l'article retournée soit suprimé de la feuille 2 et qu'elle s'incrémente avec d'autre donné remplis en manuel sur la feuille 1. De plus je voudrais faire une vérif pour que si le code article apparait sur la feuille 3 alors pas possible d'aller plus loin sur la boite de dialogue.
Je ne sais pas si je me fais comprendre. En tout cas merci de ta réponse rapide.
Par contre peux tu me dire comment t'envoyer le fichier?