Débutant en macro : réalignement des cellules d'une colonne

Bonjour à tous,

Je suis débutant en matière de VBA (à vrai dire, c'est ma toute première). J'ai essayé de programmer une macro donc le but est de réarranger les lignes d'une colonne (des notices bibliographiques désordonnées) pour les aligner avec les cellules adéquates (nom, prénom, titre de la publication ...). J'entre dans ces détails au cas où il existerait une fonctionnalité dont j'ignore l'existence et qui m'épargnerait une macro.

Je comptais exécuter la macro sur la Feuille 2, en exécutant la macro au niveau des cellules de la colonne S.

Actuellement, je bute sur une erreur 424 (Objet Requis).

Un grand merci d'avance pour votre aide !

Bonjour

Tu devrais indiquer quelle est ta feuille de départ et donner dans une autre feuille un exemple de ce que tu veux en faire.

Bye !

Effectivement, ce sera sans doute plus clair comme ça

10classeur-exemple.xlsm (196.17 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

Merci de ton aide gmb ! En fait, après avoir exploré les fonctionnalités d'Excel, j'ai préféré en passer par Power Query. Comme tu m'as suggéré de le faire au fond, j'ai généré à nouveau les notices bibliographiques en distinguant, comme c'est de rigueur, le format des articles de revue, celui des chapitres d'ouvrage collectif, et celui des ouvrages. J'en suis passé pour cela par un ajout de colonne conditionnelle.

Voici la fonction Power Query pour ceux que ça peut intéresser :

= Table.AddColumn(#"Type modifié", "Personnalisé", each if [Column2] = "Article" then Text.Combine({[Column7], " ", [Column6], ", ", [Column9], " ", [Column8], ", ", [Column10], ", ", [Column11], ", ", [Column15], ", ", [Column16], ", ", [Column17]}) else if [Column2] = "Catalogue d'exposition (article)" then Text.Combine({[Column7], " ", [Column6], ", ", [Column9], " ", [Column8], ", ", [Column10], " dans ", [Column12], ". ", [Column13], " : ", [Column14], ", ", [Column15], ", ", [Column16], ", ", [Column17]}) else if [Column2] = "Ouvrage collectif" then Text.Combine({[Column7], " ", [Column6], ", ", [Column9], " ", [Column8], ", ", [Column10], " dans ", [Column12], ". ", [Column13], " : ", [Column14], ", ", [Column15], ", ", [Column16], ", ", [Column17]}) else if [Column2] = "Actes de conférence" then Text.Combine({[Column7], " ", [Column6], ", ", [Column9], " ", [Column8], ", ", [Column10], " dans ", [Column12], ". ", [Column13], " : ", [Column14], ", ", [Column15], ", ", [Column16], ", ", [Column17]}) else if [Column2] = "Thèse" then Text.Combine({[Column7], " ", [Column6], ", ", [Column9], " ", [Column8], ", ", [Column10], ". ", [Column13], " : ", [Column14], ", ", [Column15], ", ", [Column16], ", ", [Column17]}) else if [Column2] = "Ouvrage" then Text.Combine({[Column7], " ", [Column6], ", ", [Column9], " ", [Column8], ", ", [Column10], ". ", [Column13], " : ", [Column14], ", ", [Column15], ", ", [Column16], ", ", [Column17]}) else if [Column2] = "Catalogue d'exposition (ouvrage)" then Text.Combine({[Column7], " ", [Column6], ", ", [Column9], " ", [Column8], ", ", [Column10], ". ", [Column13], " : ", [Column14], ", ", [Column15], ", ", [Column16], ", ", [Column17]}) else if [Column2] = "Autre" then Text.Combine({[Column7], " ", [Column6], ", ", [Column9], " ", [Column8], ", ", [Column10], ". ", [Column13], " : ", [Column14], ", ", [Column15], ", ", [Column16], ", ", [Column17]}) else "A vérifier")

Une fois encore, merci

Rechercher des sujets similaires à "debutant macro realignement colonne"