VBA Excel affecter zone variable -> combobox
Résolu
Lila_35
-
Lila_35 -
Lila_35 -
Bonjour,
Ce bout de code est généré par une macro dans un fichier excel . La zone active se trouve dans une feuille où l'on vient d'importer des données d'un fichier texte.
Le but étant de selectionner une certaine zone d'une colonne en fonction du champ d'une autre colonne.
colonne G = TYPE1
TYPE2
TYPE3
......
TYPE5 (max)
selection dans la colonne A des codes de TYPE1 renvoyé accessible par la combobox.
Là, je bloque.
Merci d'avance.
Ce bout de code est généré par une macro dans un fichier excel . La zone active se trouve dans une feuille où l'on vient d'importer des données d'un fichier texte.
Le but étant de selectionner une certaine zone d'une colonne en fonction du champ d'une autre colonne.
colonne G = TYPE1
TYPE2
TYPE3
......
TYPE5 (max)
selection dans la colonne A des codes de TYPE1 renvoyé accessible par la combobox.
Dim CurCRASht As Worksheet
Dim CurCRAWkb As Workbook
Dim aCL As Range
Dim pTexte As String
Dim i As Integer
Set CurCRASht = CurCRAWkb.Sheets("Description")
CurCRASht.Select
CurCRASht.Range("G19:G24").Select
i = 1
'probleme de syntaxe pour ce For Each'
For Each CurCRASht.Range("G19:G24") In CurCRASht.Range("G19:G24")
If CurCRASht.Range.value <> "" Then
pTexte = CurCRASht.Range.value
Set aCL = CurCRASht.Cells.Find(What:=pTexte, LookIn:=xlValues, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
CurCRASht.Range("A19:A3000").Select
CurCRASht.Range("A3000").Activate
CurCRAWkb.Names.Add Name:="CdPr" & i & "", RefersToR1C1:="=Description!" & aCL.Rows & "C1:" & aCL.Rows - 1 & "C1"
i = i + 1
End If
Next
Là, je bloque.
Merci d'avance.
Configuration: Windows XP Firefox 3.0.11
6 réponses
-
Bonjour,
Effectivement ta boucle For Each... Next ne va pas.
Commence par corriger ça :
For Each c In CurCRASht.Range("G19:G24") If c.value <> "" Then pTexte = c.value
etc.
m@rina
-
Bonjour,
Il y a aussi ça :Set CurCRASht = CurCRAWkb.Sheets("Description")
CurCRAWkb n'est pas déclaré !!!
;o) -
-
as range
Merci m@rina, ça tourne.
Merci à toi Polux31 mais c'était déclaré un peu plus haut. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Heuuu, si je lis ton code, je vois : Dim CurCRAWkb As Workbook, c'est donc un objet Workbook !!!
Il faut donc faire un truc comme ça :
Set CurCRAWkb = Workbooks("lefichier.xls") 'Si le fichier est déjà ouvert
ou
Set CurCRAWkb = Workbooks.Open("C:\monDossier\lefichier.xls") 'Si le fichier n'est pas ouvert.
Si par "CurCRAWkb" tu voulais désigner le fichier courant (le fichier qui exécute la macro), ce n'est pas nécessaire, il faut faire :
Set CurCRASht = ThisWorkbook.Sheets("Description")
;o) -
Re merci pour la précision Polux31.
Ce n'était qu'un bout de code d'un procédure plus longue en amont et le workbook était bien déclaré, y avait juste un souci avec le for each.
J'apprécie l'attention portée.
[Résolu]