Bonjour,
Jusque là je me débrouillais avec l'enregistrement automatique de macros pour faire des taches simples, mais j'en atteins les limites.
J'ai un tableau excel avec ligne en-tête. Je souhaite rechercher une colonne (via son en-tête) dans ce tableau, et la copier dans une autre feuille. L'enregistreur de macro m'a donné les bases du code mais je pêche sur la sélection et copie de la colonne active.
Code :
- Dim num_colonne As Integer
|
Déclaration de ma variable pour y stocker le numéro de la colonne recherchée
Code :
- Cells.Find(What:="fourniture", After:=ActiveCell, LookIn:=xlFormulas2 _
- , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
- MatchCase:=False, SearchFormat:=False).Activate
|
Une fois la colonne fourniture trouvée dans le tableau, le curseur se place sur la cellule correspondante.
Code :
- num_colonne = ActiveCell.Column
- Columns(num_colonne).Copy
- Sheets("Feuil1" ).Select
- Columns("A:A" ).Select
- Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
|
Mais la colonne n'est pas copiée dans le nouvel onglet. J'ai l'erreur d'éxécution suivante : "la méthode paste special de la classe Range a échoué"
Pourriez-vous apporter de l'aide au débutant que je suis, svp? Mes connaissances sur le VBA sont certes limitées mais je saurai lire et comprendre le code que vous me proposerez, étant à l'aise avec la programmation d'une manière générale.
Merci pour votre aide.
Message édité par paul30 le 18-07-2022 à 15:50:36