OVH Cloud OVH Cloud

VBA : Soucre d'un ComboBox sur un autre classeur...

4 réponses
Avatar
Domi
Bonsoir à tous,

J'ai dans MonClasseur.xls une macro qui
1°) Ouvre un fichier texte (toto.txt), et le met en forme.
2°) Ouvre un userform qui ne contient (pour le moment) qu'un simple
ComboBox permettant de choisir un article pour le recopier dans une plage de
toto.txt.

Mon problème est le suivant : La liste (MaListe) qui doit servir de source à
mon comboBox est dans MonClasseur.xls.(C'st une plage nommée calculée :
=DECALER(code!$A$2;;;NBVAL(code!$A:$A)-1)
J'ai beau mettre "MaListe" dans la propriété RowSource de mon ComboBox, à
l'ouverture du Userform mon ComboBox reste vide.
Je crois que c'est parce que au moment ou le Userform s'ouvre c'est toto.txt
qui est actif... (si j'ouvre le USeform snas passer par la macro, le
comboBox contient bien la liste des noms...)
Je n'arrive pas à résoudre ce problème.
Il faudrait que j'arrive à dire à l'initialisation du Userform que la Source
du combobox est une plage nommée d'un autre classeur mais je n'y parviens
pas...
Merci pour votre aide
Domi

Ma macro
Sub Import()
Application.DisplayAlerts = False
Application.ScreenUpdating = False

'Ouverture du fichier toto.txt
Workbooks.OpenText Filename:="C:\TRANSFERT\brod.txt", Origin:=xlWindows,
_
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2),
Array(19 _
, 2), Array(44, 1), Array(50, 9), Array(65, 1), Array(76, 1),
Array(87, 1), Array(98, 1), _
Array(120, 1), Array(131, 2), Array(133, 9), Array(195, 1),
Array(205, 1), Array(212, 9)) _
, TrailingMinusNumbers:=True

'Ouverture du USerform
'UsfSecteur.Show
End Sub


Private Sub UserForm_Initialize()
ChoixSecteur.SetFocus 'Le ComboBox
ChoixSecteur.RowSource = ("MaListe") '...ça ne marche

End Sub

4 réponses

Avatar
JpPradier
Bonsoir Domi

Peut-etre faut-il préciser le classeur :

ChoixSecteur.RowSource = Thisworkbook.Names("MaListe")

j-p
Avatar
JB
Bonsoir,

Définir le nom dans le classeur du formulaire en pointant vers le
classeur contenant la liste:

Maliste =[ClasseurSource.xls]Feuil1!$C$2:$C$4

Puis dans Initialize du formulaire:

Me.ComboBox1.RowSource = "Maliste"

ou si le nom est défini dans l'autre classeur:

Me.ComboBox1.List =
Application.Transpose(Workbooks("classeurSource.xls").Sheets(1).Range("lali ste"))

Cordialement JB


Bonsoir à tous,

J'ai dans MonClasseur.xls une macro qui
1°) Ouvre un fichier texte (toto.txt), et le met en forme.
2°) Ouvre un userform qui ne contient (pour le moment) qu'un simple
ComboBox permettant de choisir un article pour le recopier dans une plage de
toto.txt.

Mon problème est le suivant : La liste (MaListe) qui doit servir de sou rce à
mon comboBox est dans MonClasseur.xls.(C'st une plage nommée calculée :
ÞCALER(code!$A$2;;;NBVAL(code!$A:$A)-1)
J'ai beau mettre "MaListe" dans la propriété RowSource de mon ComboB ox, à
l'ouverture du Userform mon ComboBox reste vide.
Je crois que c'est parce que au moment ou le Userform s'ouvre c'est toto. txt
qui est actif... (si j'ouvre le USeform snas passer par la macro, le
comboBox contient bien la liste des noms...)
Je n'arrive pas à résoudre ce problème.
Il faudrait que j'arrive à dire à l'initialisation du Userform que la Source
du combobox est une plage nommée d'un autre classeur mais je n'y parvie ns
pas...
Merci pour votre aide
Domi

Ma macro
Sub Import()
Application.DisplayAlerts = False
Application.ScreenUpdating = False

'Ouverture du fichier toto.txt
Workbooks.OpenText Filename:="C:TRANSFERTbrod.txt", Origin:=xlW indows,
_
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array (0, 2),
Array(19 _
, 2), Array(44, 1), Array(50, 9), Array(65, 1), Array(76, 1),
Array(87, 1), Array(98, 1), _
Array(120, 1), Array(131, 2), Array(133, 9), Array(195, 1),
Array(205, 1), Array(212, 9)) _
, TrailingMinusNumbers:=True

'Ouverture du USerform
'UsfSecteur.Show
End Sub


Private Sub UserForm_Initialize()
ChoixSecteur.SetFocus 'Le ComboBox
ChoixSecteur.RowSource = ("MaListe") '...ça ne marche

End Sub


Avatar
Domi
Merci,
Nickel comme ça :

Private Sub UserForm_Initialize()
ChoixSecteur.SetFocus
Dim Liste As String
Liste = "'[MonClasseur.xls ]Code'!MaListe"
Me.ChoixSecteur.RowSource = Liste
End Sub
Domi


"JB" a écrit dans le message de news:

Bonsoir,

Définir le nom dans le classeur du formulaire en pointant vers le
classeur contenant la liste:

Maliste =[ClasseurSource.xls]Feuil1!$C$2:$C$4

Puis dans Initialize du formulaire:

Me.ComboBox1.RowSource = "Maliste"

ou si le nom est défini dans l'autre classeur:

Me.ComboBox1.List Application.Transpose(Workbooks("classeurSource.xls").Sheets(1).Range("laliste"))

Cordialement JB


Bonsoir à tous,

J'ai dans MonClasseur.xls une macro qui
1°) Ouvre un fichier texte (toto.txt), et le met en forme.
2°) Ouvre un userform qui ne contient (pour le moment) qu'un simple
ComboBox permettant de choisir un article pour le recopier dans une plage
de
toto.txt.

Mon problème est le suivant : La liste (MaListe) qui doit servir de source
à
mon comboBox est dans MonClasseur.xls.(C'st une plage nommée calculée :
ÞCALER(code!$A$2;;;NBVAL(code!$A:$A)-1)
J'ai beau mettre "MaListe" dans la propriété RowSource de mon ComboBox, à
l'ouverture du Userform mon ComboBox reste vide.
Je crois que c'est parce que au moment ou le Userform s'ouvre c'est
toto.txt
qui est actif... (si j'ouvre le USeform snas passer par la macro, le
comboBox contient bien la liste des noms...)
Je n'arrive pas à résoudre ce problème.
Il faudrait que j'arrive à dire à l'initialisation du Userform que la
Source
du combobox est une plage nommée d'un autre classeur mais je n'y parviens
pas...
Merci pour votre aide
Domi

Ma macro
Sub Import()
Application.DisplayAlerts = False
Application.ScreenUpdating = False

'Ouverture du fichier toto.txt
Workbooks.OpenText Filename:="C:TRANSFERTbrod.txt",
Origin:=xlWindows,
_
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2),
Array(19 _
, 2), Array(44, 1), Array(50, 9), Array(65, 1), Array(76, 1),
Array(87, 1), Array(98, 1), _
Array(120, 1), Array(131, 2), Array(133, 9), Array(195, 1),
Array(205, 1), Array(212, 9)) _
, TrailingMinusNumbers:=True

'Ouverture du USerform
'UsfSecteur.Show
End Sub


Private Sub UserForm_Initialize()
ChoixSecteur.SetFocus 'Le ComboBox
ChoixSecteur.RowSource = ("MaListe") '...ça ne marche

End Sub


Avatar
JB
La variable Liste n'est pas nécessaire:

Me.ComboBox1.RowSource = "'[ClasseurSource.xls]Code'!Maliste"

JB


Merci,
Nickel comme ça :

Private Sub UserForm_Initialize()
ChoixSecteur.SetFocus
Dim Liste As String
Liste = "'[MonClasseur.xls ]Code'!MaListe"
Me.ChoixSecteur.RowSource = Liste
End Sub
Domi


"JB" a écrit dans le message de news:

Bonsoir,

Définir le nom dans le classeur du formulaire en pointant vers le
classeur contenant la liste:

Maliste =[ClasseurSource.xls]Feuil1!$C$2:$C$4

Puis dans Initialize du formulaire:

Me.ComboBox1.RowSource = "Maliste"

ou si le nom est défini dans l'autre classeur:

Me.ComboBox1.List =
Application.Transpose(Workbooks("classeurSource.xls").Sheets(1).Range("la liste"))

Cordialement JB


Bonsoir à tous,

J'ai dans MonClasseur.xls une macro qui
1°) Ouvre un fichier texte (toto.txt), et le met en forme.
2°) Ouvre un userform qui ne contient (pour le moment) qu'un simple
ComboBox permettant de choisir un article pour le recopier dans une pla ge
de
toto.txt.

Mon problème est le suivant : La liste (MaListe) qui doit servir de s ource
à
mon comboBox est dans MonClasseur.xls.(C'st une plage nommée calcul ée :
ÞCALER(code!$A$2;;;NBVAL(code!$A:$A)-1)
J'ai beau mettre "MaListe" dans la propriété RowSource de mon Comb oBox, à
l'ouverture du Userform mon ComboBox reste vide.
Je crois que c'est parce que au moment ou le Userform s'ouvre c'est
toto.txt
qui est actif... (si j'ouvre le USeform snas passer par la macro, le
comboBox contient bien la liste des noms...)
Je n'arrive pas à résoudre ce problème.
Il faudrait que j'arrive à dire à l'initialisation du Userform que la
Source
du combobox est une plage nommée d'un autre classeur mais je n'y parv iens
pas...
Merci pour votre aide
Domi

Ma macro
Sub Import()
Application.DisplayAlerts = False
Application.ScreenUpdating = False

'Ouverture du fichier toto.txt
Workbooks.OpenText Filename:="C:TRANSFERTbrod.txt",
Origin:=xlWindows,
_
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Arr ay(0, 2),
Array(19 _
, 2), Array(44, 1), Array(50, 9), Array(65, 1), Array(76, 1),
Array(87, 1), Array(98, 1), _
Array(120, 1), Array(131, 2), Array(133, 9), Array(195, 1),
Array(205, 1), Array(212, 9)) _
, TrailingMinusNumbers:=True

'Ouverture du USerform
'UsfSecteur.Show
End Sub


Private Sub UserForm_Initialize()
ChoixSecteur.SetFocus 'Le ComboBox
ChoixSecteur.RowSource = ("MaListe") '...ça ne marche

End Sub