[Excel VBA] Recherche valeur, cut, coll dans une autre cellule.

Signaler
Messages postés
55
Date d'inscription
vendredi 20 février 2009
Statut
Membre
Dernière intervention
28 février 2011
-
Messages postés
55
Date d'inscription
vendredi 20 février 2009
Statut
Membre
Dernière intervention
28 février 2011
-
Bonjour à tous<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>






 






Apres d’âpres recherches sur tout les forums et divers essais non concluant depuis 3 jours, j’en arrive à avoir besoin de votre aide pour réaliser la macro que je souhaiterai avoir.






 






Voici le problème :






 






Ex de tableau excel






 









             


         A                 B        C          D               E             F                     G





Ligne 1     000001            RN      2          EUR    19/02/2009      PG:      3 475 052.770





Ligne 2     Client X                                              19/02/2009      PN:      270 983.020





Ligne 3





Ligne 4





Ligne 5     000002            RN      6          EUR    19/02/2009      PG:      204 083.330





Ligne 6     Client Y                                               19/02/2009      PN:      204 083.330





Ligne 7





Ligne 8





Ligne 9     000003            RN      9          AUD    19/02/2009      PG:      318 008.850





Ligne 10   Client Z                                               19/02/2009     PN:      26 342.860





Ligne 11





Ligne 12                            RN      13        EUR    19/02/2009      PG:      952 388.890





Ligne 13                                                                19/02/2009     PN:      78 807.740





Ligne 14





Ligne 15                                 RN      14        USD    19/02/2009      PG:      3 384 166.670





Ligne 16                                                                     19/02/2009     PN:      280 032.710








 






Donc je voudrais que la macro recherche la valeur “PN:” dans la colonne F, coupe la ligne trouvée de la colonne A à G et la colle sur la ligne au-dessus dans la colonne H. Ceci afin d’avoir une seule ligne de données au lieu de deux. Et que par la suite les lignes vides soient effacées.






 






Pour au final avoir ceci comme tableau :






 









           


   

A           B   C   D              E          F            G                    H               I             J          K



Ligne 1  000001  RN   2  EUR  19/02/2009  PG:  3 475 052.770  Client X  19/02/2009  PN:  270 983.020





Ligne 2  000002  RN   6  EUR  19/02/2009  PG:     204 083.330  Client Y   19/02/2009  PN:   204 083.30





Ligne 3  000003  RN   9  AUD  19/02/2009  PG:     318 008.850  Client Z   19/02/2009  PN:    26 342.860





Ligne 4                RN 13   EUR  19/02/2009  PG:     952 388.890                 19/02/2009  PN:     78 807.740





Ligne 5               RN 14 USD   19/02/2009  PG:  3 384 166.670                  19/02/2009  PN:   280 032.710








 






Merci d’avance pour votre aide.

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
C'est gentil d'avoir précisé que tu étais sous Excel, en VBA.
Note qu'il y a aussi une catégorie de question (modifiée)

Ma formule favorite : "Si tu sais le faire à la main, tu sais le programmer"
Que je répète souvent concernant Excel :

Enregistre une macro pendant que tu fais la manipulation à la main et regarde dans le code généré : Tout y est.
Tu n'as plus qu'à le modifier si tu veux y faire apparaitre une variable à la place de valeurs fixes, et le tour est joué.
Tu auras alors surement des questions plus précises : Revient nous voir sans problème

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
55
Date d'inscription
vendredi 20 février 2009
Statut
Membre
Dernière intervention
28 février 2011

Bonjour,

C'est pas faute d'avoir essayer en cherchant sur les forums et en faisant diverses modifications de mes formules VBA que ce soit en enregistrement manuel ou non.

Voilà la formule la plus proche de ce que je recherche mais simplement elle n'a marché qu'une fois et ensuiste elle me recopie le code VBA dans la case de destination et me met Erreur 1004 sur Activesheet.paste.

For X = 2 To Range("F65536").End(xlUp).Row
If Range("F" & X) Like "*PN*" Then Rows(X).EntireRow.SpecialCells(xlCellTypeConstants).Copy
Cells(65536, 6).End(xlUp).Offset(-1, 2).Select
ActiveSheet.Paste


Next X
End Sub

Mais sérieusement c'est mon dernier recours de venir ici, et j'aurais préféré y arrivé seul, mais bon le temps n'est pas mon ami au boulot et c'est l'étape majeur pour ce que je dois faire !!!

Merci de m'aider !!!