Bonjour à toutes et tous..
à mon tour, j'ai un souci que je vous soumets ici
j'ai deux classeurs:
1 --> classeur MAIN qui représente mon application principale
2--> classeur Données qui contient les datas dont l'application a besoin
les DEUX sont ouverts
SUR le classeur MAIN, une macro qui ouvre un formulaire contenant 2 combobox
le combobox CBMAIN est alimenté par des datas qui se trouvent sur le classeur MAIN actif
VB:
With FeuilleDonnéeClasseurMain
Fin = .Range("A" & .Rows.Count).End(xlUp).Row
Me.CBMain.RowSource = .Name & "!" & .Range("A1:A" & Fin).Address
End With
ceci fonctionne bien puisque la feuille est celle du classeur actif
le combobox CBDonnée est alimenté par des datas qui se trouvent sur le classeur Données
VB:
With FeuilleDonnéeClasseurDonnée
.Activate
Fin = .Range("A" & .Rows.Count).End(xlUp).Row
Me.CBDonnées.RowSource = .Name & "!" & .Range("A1:A" & Fin).Address
End With
dans ce code, SANS le .activate, impossible de définir le rowsource
pour éviter d'avoir à basculer d'un fichier à un autre, j'ai besoin de me passer du .activate..
j'imaginais qu'un truc du genre ferait l'affaire.. mais non....
VB:
With ClasseurDonnée.FeuilleDonnéeClasseurDonnée
' .Activate
Fin = .Range("A" & .Rows.Count).End(xlUp).Row
Me.CBDonnées.RowSource = .Name & "!" & .Range("A1:A" & Fin).Address
End With
ou alors un
Me.CBDonnées.RowSource = ClasseurDonnée.name &"'" &.Name & "!" & .Range("A1:A" & Fin).Address
y a t il une syntaxe particulière ???
With FeuilleDonnéeClasseurDonnée
Fin = .Range("A" & .Rows.Count).End(xlUp).Row
Me.CBDonnées.RowSource = .Range("A1:A" & Fin).Address(, , , True)
End With