Probleme boucle de recherche VBA sous Excel
herod1983
-
herod1983 -
herod1983 -
Bonjour,
Je suis novice en VBA sous Excel
Voila j'ai un userform avec des text et combobox qui renseignent une page avec des cellules précise.
Nous dirons sur cette page feuil1 cell A1 A2 et A3 que c'est la demande d'un travail à faire.
Ses cellules se copient aussi sur une autre page feuil2 une fois le userform fermé sur B1 B2 et B3 cela est en quelque sorte une synthèse.
Mon problème le voici vu qu'il y aura plusieurs travaux et donc plusieurs synthèses de ses travaux.
J'aimerais une fois le travail terminé quand je l'efface créer une boucle de recherche qui va trouver la copie dans la feuil2 de synthèse et l'effacer aussi.
J'ai bien trouvé un moyen en gardant chaque synthèse dans une ligne et donc l'effacer par rapport à son positionnement dans la feuille mais, vu que j'ai mis une liste qui permet de les classer par dates, la position change tous le temps.
j'espère que j'ai été assez clair sur ma demande, et je vous remercie d'avance pour votre aide.
Je suis novice en VBA sous Excel
Voila j'ai un userform avec des text et combobox qui renseignent une page avec des cellules précise.
Nous dirons sur cette page feuil1 cell A1 A2 et A3 que c'est la demande d'un travail à faire.
Ses cellules se copient aussi sur une autre page feuil2 une fois le userform fermé sur B1 B2 et B3 cela est en quelque sorte une synthèse.
Mon problème le voici vu qu'il y aura plusieurs travaux et donc plusieurs synthèses de ses travaux.
J'aimerais une fois le travail terminé quand je l'efface créer une boucle de recherche qui va trouver la copie dans la feuil2 de synthèse et l'effacer aussi.
J'ai bien trouvé un moyen en gardant chaque synthèse dans une ligne et donc l'effacer par rapport à son positionnement dans la feuille mais, vu que j'ai mis une liste qui permet de les classer par dates, la position change tous le temps.
j'espère que j'ai été assez clair sur ma demande, et je vous remercie d'avance pour votre aide.
A voir également:
- Probleme boucle de recherche VBA sous Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
2 réponses
Bonjour,
Ce serait plus simple avec un fichier exemple, si tu peux le joindre...
Dans le principe : donner à une variable la valeur de ton travail dans la feuille 1, avant de l'effacer, faire ensuite une recherche dans la feuille 2, quand tu trouves la même occurence, tu effaces la ligne entière dans la feuille 2...
A adapter : (il faut activer la feuille 2, etc...)
dim mavar
mavar=feuil1.A1
dim i
for i=1 to feuil2.usedrange.rows.count (là tu balayes toute la feuille)
if feuil2.cells(i,1)=mavar then
rows(i).delete
next
:-)
Ce serait plus simple avec un fichier exemple, si tu peux le joindre...
Dans le principe : donner à une variable la valeur de ton travail dans la feuille 1, avant de l'effacer, faire ensuite une recherche dans la feuille 2, quand tu trouves la même occurence, tu effaces la ligne entière dans la feuille 2...
A adapter : (il faut activer la feuille 2, etc...)
dim mavar
mavar=feuil1.A1
dim i
for i=1 to feuil2.usedrange.rows.count (là tu balayes toute la feuille)
if feuil2.cells(i,1)=mavar then
rows(i).delete
next
:-)
Pas clair :-)
Tu veux faire une recherche sur plusieurs cellules? Ou bien quand tu trouves une correspondance tu veux n'effacer que quelques cellules au lieu de toute une ligne?
Si je comprends bien...
mavar=feuil1.A5 & feuil1.B5 & feuil1.C5 & feuil1.D5 (le signe & colle tes cellules les unes derrières les autres, une concaténation pour les intimes... lol)
ensuite dans la boucle
if feuil2.cells(i,1) & feuil2.cells(i,2) & feuil2.cells(i,3) & feuil2.cells(i,4)=mavar then...
:-)
Tu veux faire une recherche sur plusieurs cellules? Ou bien quand tu trouves une correspondance tu veux n'effacer que quelques cellules au lieu de toute une ligne?
Si je comprends bien...
mavar=feuil1.A5 & feuil1.B5 & feuil1.C5 & feuil1.D5 (le signe & colle tes cellules les unes derrières les autres, une concaténation pour les intimes... lol)
ensuite dans la boucle
if feuil2.cells(i,1) & feuil2.cells(i,2) & feuil2.cells(i,3) & feuil2.cells(i,4)=mavar then...
:-)
Super sa marche nikel.
merci beaucoup
a+
J'ai encore un problème dans ce code que j'ai recu:
dim mavar
mavar=feuil1.A1
dim i
for i=1 to feuil2.usedrange.rows.count (là tu balayes toute la feuille)
if feuil2.cells(i,1)=mavar then
rows(i).delete
next
La recherche est basé que sur la première cellule ce qui m'en efface plusieurs au lieu de prendre en compte toutes les cellules de la ligne.
J'aimerai donc je le rappel, que quand j'efface des cellules sélectionnés dans feuil1 il recherche la ligne dans feuill2 avec les mêmes valeurs dans feuill2 que celle de feuil1 et les effaces sa devrait donner ceci, le problème que j'ai et que je n'arrive pas a dire que i doit prendre en cours cells( i, 1) cells( i, 2 )cells (i, 3 )etc
sheets("feuil1").activate
dim mavar as string
mavar=feuil1.A5.B5.C5.D5
sheets("feuil2").activate
for i=1 to feuil2.usedrange.rows.count
if feuil2.cells(i, 1) + cells(i, 2) + cells(i,3) + cells(i, 4) = mavar then rows(i).ClearContents
next i
Merci d'avance pour votre aide
a+