Je cherche la bonne synthxe pour effectuer une séléction de plage de cellule avec le nom de la colonne en variable
Voici la ligne que je n'arrive pas à ecrire correctement.
Code:
Set ColTrouve = Workbooks(SourceFile).Sheets(SourceTab).Row(1).Cells.Find(what:=SourceCol)
Workbooks(SourceFile).Sheets(SourceTab).Range("ColTrouve 2":ColTrouve Range(Selection, Selection.End(xlUp)).Copy
Le problème est dans la ligne commencais par "WorkBooks"
Varaible ColTrouve = C (exemple)
L'objectif de cette ligne est de sélectionner toute les valeurs de la colonne C par exemple. Depuis C2 à C fin de tableau, D'ou le Selection.End(xlUp).
Es ce que quelqu'un sais comment écrire cette ligne correctement ?
Par avance un très grand merci pour le temps passé à me répondre
Normalement, il devrais sélectionner la colonne entiere ou se trouve des valeur, prenons l'exemple ou la colonne en question est B
Dans la colonne B j'ai 10 ligne, je désire sélectionne Range (B2:B10) sauf que la fonction me sélectionne range(B1:B2) a la place. La question est: pourquoi la partie End(xlUp).Row) ne fonctionne pas correctement ?
Re : Sythaxe séléction plage avec No de colonne en variable
Re,
Le problème vient de
Range(ColTrouve2 & "65536").End(xlUp).Row)
La valeur est = 1 alors qu'il devrais être = 10. Je ne comprend pas pourquoi il ne prend pas la derniere cellule pleine du tableau mais la cellule 1 à la place :s
Re : Sythaxe séléction plage avec No de colonne en variable
Bonsoir,
Ne penses tu pas qu'il grand temps de fournir un peu plus que ces qq lignes de codes qui n'ont aucun sens pour qui ne dispose pas du fichier !!
Edit :
tu écris...
Code:
Set ColTrouve = Workbooks(SourceFile).Sheets(SourceTab).Rows(1).Cells.Find(what:=SourceCol)
...donc on peut supposer mad que tu cherches un variable SourceCol (?) dans la ligne 1, donc en toute logique ColTrouve correspond à la cellule qui contient cette valeur et si c'est le cas...
Code:
Dim c As Range
With Workbooks(SourceFile).Sheets(SourceTab)
Set c = .Rows(1).Find(what:=SourceCol)
If Not c Is Nothing Then
.Range(.Cells(2, c.Column), .Cells(65000, c.Column).End(xlUp)).Copy
'...
End If
End With
End Sub