Conseils pour la création d'une macro

Bonjour tout le monde,

Je suis un peu à la ramasse pour la conception d'une macro, j'ai quelques idées mais après avoir testé je vous avoue ne plus réussir à voir clair.

Pouvez-vous m'aider s'il vous plait ??

image

J'ai plusieurs infos pour une même personne mais pour les réutiliser avec une RECHERCHEV j'ai besoin qu'elles soient sur la même ligne

Chaque personne est identifiable par un numéro, ainsi que leur nom + prénom. Ils sont aussi identifiables par la présence du terme "Champion".

Pensez-vous qu'il est raisonnablement possible de réaliser une macro qui récupère le contenu de la cellule A et le contenu des lignes où il y a "Unique" et "Unique2" pour les mettre sur la même ligne ?

Ex :

image

Je m'en remets à vous pour avoir une idée de la logique vers laquelle je dois m'orienter pour réaliser cette prouesse ou si c'est une perte de temps car impossible?

Merci d'avance pour votre aide.

P.S: je mets un fichier en pj pour ceux qui préfèrent avoir la structure pour réfléchir

Bonjour

Ci joint ma solution

A+ François

Bonjour Fanfan,

Votre macro est verrouillée, ça ne va pas trop l'aider.

Bonjour Fanfan,

Merci pour ton retour ! J'ai bien réussi à l'ouvrir pour ma part.

Je pensais plus à une macro qui ne garde que les lignes qui contiennent "Champion" dans la colonne A, et "Unique" ou "Unique2" dans la colonne B, pour ensuite les mettre toute sur la même ligne. Ta macro fonctionne bien sur mon fichier test mais pas sur mon fichier source.

Sub lignesquinontpasuniqueunique2etagent()

If (Range("A" & i)) <> "Champion" Or (Range("B" & i)) <> "Champion" Or (Range("B" & i)) <> "Champion" Then Rows(i).Delete

End Sub

Je devrais à ce moment là avoir uniquement les lignes qui contiennent "Champion" dans la Colonne A, et celles qui contiennent "Unique" ou "Unique2" dans la colonne B.

J'aurais donc cette macro pour enlever les colonnes vides C / D / F / H / J / L /N / P :

Sub suppcolonnevides()
Dim MyRange As Range
Dim iCounter As Long
Set MyRange = ActiveSheet.UsedRange
For iCounter = MyRange.Columns.Count To 1 Step -1
If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then
Columns(iCounter).Delete
End If

Next iCounter

End Sub

Il faudrait donc une macro après qui permette de transformer :

Champion 3000: Nom1, Prénom1
UniqueInfos à recup1-1Infos à recup1-2Infos à recup1-3Infos à recup1-4Infos à recup1-5Infos à recup1-6
Unique2Infos à recup2-1Infos à recup2-2Infos à recup2-3Infos à recup2-4Infos à recup2-5Infos à recup2-6

en ce tableau :

Champion 3000: Nom1, Prénom1UniqueInfos à recup1-1Infos à recup1-2Infos à recup1-3Infos à recup1-4Infos à recup1-5Infos à recup1-6Unique2Infos à recup2-1Infos à recup2-2Infos à recup2-3Infos à recup2-4Infos à recup2-5Infos à recup2-6

J'ai donc un problème pour trouver la macro avant et la macro d'après car je pense que je n'utilise pas les bonnes syntaxes.

J'ai beau chercher je ne trouve pas la bonne fonction permettant d'utiliser "SI ne contient pas X en A OU Y en B OU Z en B alors supprimer la ligne"

Et je ne trouve pas non plus celle qui permet de coller lignes les unes à la suite des autres et répeter cette manoeuvre pour traiter cette demande sur plusieurs personnes.

Bonjour

Si ton fichier ne ressemble pas à la réalité je ne peux rien pour toi (je ne suis pas devin)

Est ce que ça répond plus à ta demande ?

A+ François

Merci fanfan c'est parfait, désolé pour le manque de précision dans mon premier post !

Le rendu est impeccable et s'adapte parfaitement à mon fichier de base !

Je vais analyser ta macro pour comprendre son fonctionnement, parce que là je suis largué :)

Merci encore !

Rechercher des sujets similaires à "conseils creation macro"