[Excel VBA] Rech mots suppr jusqua autre mot

Résolu/Fermé
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 - 2 mars 2009 à 14:28
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 - 5 mars 2009 à 22:05
Bonjour,

Dans le cadre d'un TDB je sollicite votre aide afin de résoudre mon problème.

Je vous joins le fichier :

https://www.cjoint.com/?dejMlbQMOx

Ce que je souhaiterai en fait c’est que la macro recherche dans la colonne D le mot « INTERE » que cela selectionne les lignes jusqu’à ce que le mot « CAPITA » soit trouvé mais que la selection s’arrete à la ligne au-dessus. Une fois la selection effectuée, que cela supprime les lignes entières de la selection. Dans le but d’eviter les doublons CAPITA et INTERE qui reprennent les memes données.

Dans un second temps il faudrait que les lignes vides en-dessous du nom de chaque client soit rempli des données de la ligne client originale.

Dans l’onglet « Version Finale » du fichier vous retrouverez ce que cela doit donner au final :-)

Je vous joins une macro que j'ai testé mais qui marche pas :

Dim sh As Excel.Worksheet, x As Long, i As Integer
Set sh = Sheets("Regroupement")
For x = sh.Range("D" & Application.Rows.Count).End(xlUp).Row To 2 Step -1
If sh.Range("D" & x).Value Like "*INTERE*" Then
For i = 1 To Range("D:D").Value = "*CAPITA*" Step - 1
sh.Rows(x).Delete
Next i
End If
Next x
Set sh = Nothing




End Sub


Merci pour votre aide.
A voir également:

16 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
2 mars 2009 à 19:11
bonjour

Essaies comme ceci si j'ai compris ta problématique
Dim sh As Excel.Worksheet, x As Long, l As Long, typ As Integer
Set sh = Sheets("Regroupement")
x = 7
Do
    If sh.Range("D" & x).Value Like "*CAPITA*" Then
        l = x
        typ = 1
        x = x + 1
    ElseIf sh.Range("D" & x).Value Like "*INTERE*" Then
        typ = 2
        sh.Rows(x).Delete
    ElseIf typ = 1 Then
        sh.Cells(l, 1).Resize(1, 4).Copy _
            Destination:=sh.Cells(x, 1)
        x = x + 1
    ElseIf typ = 2 Then
        sh.Rows(x).Delete
    End If
Loop While sh.Cells(x, 5).Value <> ""
Set sh = Nothing
0
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
3 mars 2009 à 11:09
Merci beaucoup ca marche impeccable....cest vraiment génial !!!

Par contre est ce possible que vous me commentiez les lignes de la macro afin que je comprenne le cheminent si ce n'est pas trop vous demander ???

Merci encore
0
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
3 mars 2009 à 11:44
J'ai un petit soucis avec la Macro ca ne vient pas de sa programmation ca marche nikel mais de la mise en forme de mon tableau de départ que je ne peux modifier... :-(

Je vous joins le fichier :

https://www.cjoint.com/?dflUDbmZt7

Ce qu'il faudrait faire je pense cest que dans la colonne A, soit recherché la première cellule vide en partant du haut, copier les valeurs de la ligne au-dessus des colonnes A,B,C et D et que celles ci se collent jusqu'à la première cellule non vide -1 suivante de la colonne A et coller.

Dans le tableau joint, il y a la version de Base et la version souhaitée.

Merci encore pour votre aide, ce forum est vraiment mon sauveur :-)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 mars 2009 à 17:38
bonjour

J'ai un petit soucis avec la Macro

Je ne comprends absolument pas ce que tu veux dire.

Si ta base réelle ne commence pas en ligne 7 il te suffit de changer la valeur : x = 7 par la tienne.

Sur ton exemple la macro donne bien la "version souhaitée"
0

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

Posez votre question
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
4 mars 2009 à 10:01
Bonjour,

Oui oui tinquietes mon tableau commencait a la ligne 2 donc jai changer par x = 2 ya pas de pb !!!

Là ou ca coince cest par rapport a la mise en forme de mon tableau original ou parfois il y a le mot "CAPITA" est placé à un endroit qui fait en sorte que le nom des clients n'est pas recopié en dessous comme dans l'exemple du dernier fichier joint dans longlet base qui est le résultat obtenu apres ta macro !!!
On voit dans la colonne A que le client 3, 4 et 5 sont bien recopiés en-dessous mais que les clients 6, 7 et 8 ne le sont pas.
Donc il faudrait une macro qui recopie les colonnes A B C D de la lignes du client 7 par exemple et la recopie en dessous dans les cellules vides jusquau client 8 et ainsi de suite...pour arriver au résultat de l'onglet version finale.

Merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 mars 2009 à 10:31
bonjour

mon tableau original ou parfois il y a le mot "CAPITA" est placé à un endroit qui fait en sorte que le nom des clients

Lorsque l'on donne un exemple, il vaut mieux qu'il corresponde à la réalité et si le mot "CAPITA" peut se retrouver n'importe où il eut fallut le dire.

On voit dans la colonne A que le client 3, 4 et 5 sont bien recopiés en-dessous mais que les clients 6, 7 et 8 ne le sont pas.

Ceci est totalement faux car sur ton exemple les noms sont bien recopiés. Si tu constates cela c'est que ton exemple est non conforme.

pour arriver au résultat de l'onglet version finale

Dans ton exemple c'est exactement ce qui se passe et si chez toi ce n'est pas le cas fournit l'exemple correct pour ne pas obtenir le résultat.
Comme souvent, tu nous fournit des données non représentatives et ensuite tu te plains que cela ne donne pas satisfaction : si tu va voir ton médecin en lui disant que tu as mal aux oreilles alors que c'est à la plante des pieds, il y a peu de chances que tu obtiennes le bon médicament...
0
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
4 mars 2009 à 12:01
https://www.cjoint.com/?dgl6ehCYPz

Voici le lien vers le tableau tel que je lai (sauf bien evidemment le vrai nom des clients, des dossiers et des montants).

Merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 mars 2009 à 17:41
bonjour

C'est exactement ce que je pensais : tu as mis un exemple incorrect et comme souvent, tu viens dire après, que l'on ne sait pas résoudre tes problèmes, en fournissant de nouvelles prémices et ce n'est pas du tout respectueux pour ceux qui te rendent service de les prendre pour des c...

* De l'Art poétique (1674)

Avant donc que d'écrire, apprenez à penser
Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément. Nicolas Boileau


Ton fichier avec la macro qui fonctionne :

http://www.cijoint.fr/cjlink.php?file=cj200903/cijg2sd5JB.xls
0
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
4 mars 2009 à 21:49
Attends à aucun moment je n'ai dit que tu n'avais pas résolu mon pb bien au contraire relis mes post
Et en aucun cas je t'ai pris pour un con !!!

Justement jai essayé de faire en sorte de réduire mon tableau d'origine qui comprend une grosse quantité de lignes afin de vous faciliter la compréhension de mon pb.

Ok apres je navais pas anticipé que mon tableau d'origine était mal foutu à certains endroits d'où mon souhait de juste peaufiner la macro afin de pouvoir résoudre ce nouveau paramètre dont je niais l'existence.

Ensuite si le fait d'essayer de faciliter la compréhension de mon pb, de ne pas te manquer de respect pour ce grand service que tu mas rendu, et d'essayer de donner une idée pour résoudre le nouveau pb, si tout cela te permet de me faire passer pour un conn**d sans reconnaissance et pour qq1 qui fait passer les autres pour des c**s bah écoute j'y peux rien si ta perception des choses est négative, fausse et excuse moi, débile !!!

Si tu n'as pas envie de m'aider pour ce pb, tanpis...peut etre que dautres personnes pourront maider !!

Merci quand même encore une fois de mavoir aider a résoudre mon pb !!
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 mars 2009 à 22:02
bonjour

Si tu n'as pas envie de m'aider pour ce pb, tanpis...

Tu aurais tout de même pu regarder le fichier avec la macro corrigée... et opérationnelle, au lieu de sortir toute cette polémique : ne penses tu pas ?
0
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
5 mars 2009 à 10:07
Bonjour,

Désolé je ne l'avais pas vu !!!

Non mais ca m'a énervé que l'on dise que je prend des gens pour des cons quand ce n'est pas le cas et que ce n'est pas dans ma nature, et que je respect les gens qui donnent de leur temps pour aider les autres c'est tout !!

Mais bon bref...

Pour le lien vers le fichier, je ne sais pas si c'est un oubli de ta part ou si c'est l'ordi de mon boulot qui bloque les macros venant d'Internet, mais il n'y a pas de macro dans ton fichier !!!

Serait-il possible que tu la colles sur le forum afin que je puisse avancer aujourd'hui stp ?

Merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 mars 2009 à 10:53
bonjour

je ne sais pas si c'est un oubli de ta part

Non la macro y est bien dans la feuille "Regroupement" que tu as figée dans ta première macro et comme le classeur est disponible pour tous ceux qui lisent ce sujet, ils n'auront aucun problème pour la récupérer s'ils veulent mais peu auront probablement à faire la même manipulation.

Toujours zen
0
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
5 mars 2009 à 11:11
Je regarderais chez moi ce soir, l'ordi du boulot m'avait déjà fait le coup avec un autre lien une fois et sur mon ordi perso ça avait marché, il doit y avoir des blocages de sécurité interne !!

Merci encore.
0
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
5 mars 2009 à 21:13
Bonsoir,

Je viens de télécharger le fichier à partir du lien que tu as mis et le fichier ne contient aucunes macros !!
Tu pourrais renvoyer ton fichier stp ou coller la macro si ca ne te derange pas ??
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 mars 2009 à 21:41
bonjour

le fichier ne contient aucunes macros !!

C'est une plaisanterie ?
Je n'ai pas pour habitude de les enlever même si toi tu l'as fait dans tous tes exemples...

Tu pourrais renvoyer ton fichier stp ou coller la macro si ca ne te derange pas ??

Tu pourrais surtout apprendre à lire les macros dans un classeur en regardant ce sujet et non te contenter de faire alt F8 ou outils/ macro / macros.

Tu verras que la macro y est bien dans la feuille "Regroupement" comme dit précédemment dans la procédure que tu avais consciencieusement vidée.
0
Gorion87 Messages postés 55 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 28 février 2011 19
5 mars 2009 à 22:05
Merci j'ai trouvé grâce à tes explications et je ne connaissais pas cette option.
Et ca marche impeccable !!!

Je te remercie aussi de m'avoir parler comme à une m**de et désolé si je ne suis pas un pro de l'informatique (c'est pas une raison pour parler comme ça) et si j'ai essayé de faire de mon mieux pour aider même si ce n'est pas le cas apparement...je le saurais pour la prochaine fois !!

Bonne soirée et merci encore.
0