Je voudrais sélectionner plusieurs colonnes.
Par exemple. Je veuxselect column a, b, d, e, g, h
J'ai essayé:
Columns("A, B, D, E, G, H").select
Je reçois erreur message:Type mismatch
.
Range("A:B,D:E,G:H").Select
peut vous aider
Modifier la note: je viens de voir que vous avez utilisé différentes séquences de colonnes, j'ai mis à jour ma réponse
Certaines choses du haut de ma tête.
Méthode 1.
Application.Union(Range("a1"), Range("b1"), Range("d1"), Range("e1"), Range("g1"), Range("h1")).EntireColumn.Select
Méthode 2.
Range("a1,b1,d1,e1,g1,h1").EntireColumn.Select
Méthode 3.
Application.Union(Columns("a"), Columns("b"), Columns("d"), Columns("e"), Columns("g"), Columns("h")).Select
Une partie du code me semble un peu complexe. C'est un code très simple pour ne sélectionner que les lignes utilisées dans deux colonnes D et H non contiguës. Cela suppose que les colonnes ont une longueur inégale et sont donc plus flexibles que si les colonnes étaient de même longueur.
Comme vous en avez probablement deviné 4 = colonne D et 8 = colonne H
Dim dlastRow As Long
Dim hlastRow As Long
dlastRow = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
hlastRow = ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Row
Range("D2:D" & dlastRow & ",H2:H" & hlastRow).Select
J'espère que vous trouverez utile - N'OUBLIEZ PAS CETTE COMMA AVANT LA DEUXIÈME COLONNE, COMME JE L'AVAIS, OR IL BOMBE !!
Travaillant sur un projet, je suis resté bloqué pendant un certain temps sur ce concept - je me suis retrouvé avec une réponse similaire à la Méthode 1 de @GSerg qui a très bien fonctionné. J'ai essentiellement défini deux plages de formules (en utilisant quelques variables), puis utilisé le concept d'Union. Mon exemple est tiré d'un projet plus vaste sur lequel je travaille, mais j'espère que la partie de code ci-dessous peut aider d'autres personnes qui pourraient ne pas savoir comment utiliser le concept d'Union conjointement avec des plages et des variables définies. Je n'ai pas inclus l'intégralité du code car, à ce stade, il est assez long - si quelqu'un veut plus de perspicacité, n'hésitez pas à me le faire savoir.
D'abord j'ai déclaré toutes mes variables comme publiques
Puis j'ai défini/défini chaque variable
Enfin, je mets une nouvelle variable "SelectRanges" comme union entre les deux autres FormulaRanges
Public r As Long
Public c As Long
Public d As Long
Public FormulaRange3 As Range
Public FormulaRange4 As Range
Public SelectRanges As Range
With Sheet8
c = pvt.DataBodyRange.Columns.Count + 1
d = 3
r = .Cells(.Rows.Count, 1).End(xlUp).Row
Set FormulaRange3 = .Range(.Cells(d, c + 2), .Cells(r - 1, c + 2))
FormulaRange3.NumberFormat = "0"
Set FormulaRange4 = .Range(.Cells(d, c + c + 2), .Cells(r - 1, c + c + 2))
FormulaRange4.NumberFormat = "0"
Set SelectRanges = Union(FormulaRange3, FormulaRange4)
En tant que macro enregistrée.
range("A:A, B:B, D:D, E:E, G:G, H:H").select