précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait
saurait...?
Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait
saurait...?
Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait
saurait...?
Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys
:(
on vous l'a dit et répèté pas de select dans les macros !!!
sauf quand c'est indispensable
et c'est très très très rare.
:(
on vous l'a dit et répèté pas de select dans les macros !!!
sauf quand c'est indispensable
et c'est très très très rare.
:(
on vous l'a dit et répèté pas de select dans les macros !!!
sauf quand c'est indispensable
et c'est très très très rare.
Bonsoir,:(
on vous l'a dit et répèté pas de select dans les macros !!!
sauf quand c'est indispensable
et c'est très très très rare.
Désolé, c'est la première fois que j'entends parler de ne pas
sélectionner un objet dans une macro..... Mais puisque tu le dis...
Je vais essayer donc d'être plus explicite. Dans la colonne A se
trouve des abbréviations de cies. ces abbréviations ont trois lettres.
Dans la colonne B, il y a les numéros des produits (trois chiffres).
Puis en colonne C, le nom du produit.
Donc la compagnie DEF se trouve en colonne A peut-être 35 fois si elle
a 35 produits. Avec mon userform, le combobox1 l'usager écrit DEF.
Immédiatement dans le combobox2 apparait le premier numéro à trois
chiffres à côté du premier DEF de la colonne A.
Lorsque j'écris le nombre dans le combobox correspondant dans la
colonne B au produit de la cie DEF, je voudrais qu'Excel commence la
recherche à partir de la ligne correspondant au premier DEF de la
colonne A. La raison est qu'il y a peut-être 20 cies dont le no de
produit est 123. Jusqu'à présent, Excel part toujours du début de la
colonne B au lieu de la ligne correspondante à la recherche
précédente....
J'espère que c'est plus explicite ainsi... Voici le code...
Private Sub ComboBox1_Change()
Call Trouver
End Sub
Sub Trouver()
'On Error Resume Next
Application.ScreenUpdating = False
Sheet1.Select
Nom = ComboBox1
If ComboBox1 = "" Then Exit Sub
Dim c, fistA
Dim msg, Style, Title, response
Style = vbInformation + vbYesNo
Title = ""
With ActiveSheet().Range("Abbrev") ' Colonne A
Set c = .Find(What:=Nom, after:=Range("A2"), LookIn:=xlValues,
Lookat:=xlWhole, searchdirection:=xlNext, MatchCase:=True)
If c Is Nothing Then
question1 = MsgBox("No such abbreviation found !!", vbOKOnly)
ComboBox2.Value = ""
Exit Sub
End If
If Not c Is Nothing Then
fistA = c.Address
Application.GoTo Reference:=Range(c.Address)
ComboBox2.Value = ActiveCell.Offset(0, 1).Value
ComboBox3.Value = ActiveCell.Offset(0, 2).Value
ActiveCell.Offset(0, 1).Select
Sheet3.Select
End If
End With
Sheet3.Select
End Sub
Ensuite je recommence avec le combobox2, mais je veux que la recherche
commence à la cellule active.
Merci
Denys
Bonsoir,
:(
on vous l'a dit et répèté pas de select dans les macros !!!
sauf quand c'est indispensable
et c'est très très très rare.
Désolé, c'est la première fois que j'entends parler de ne pas
sélectionner un objet dans une macro..... Mais puisque tu le dis...
Je vais essayer donc d'être plus explicite. Dans la colonne A se
trouve des abbréviations de cies. ces abbréviations ont trois lettres.
Dans la colonne B, il y a les numéros des produits (trois chiffres).
Puis en colonne C, le nom du produit.
Donc la compagnie DEF se trouve en colonne A peut-être 35 fois si elle
a 35 produits. Avec mon userform, le combobox1 l'usager écrit DEF.
Immédiatement dans le combobox2 apparait le premier numéro à trois
chiffres à côté du premier DEF de la colonne A.
Lorsque j'écris le nombre dans le combobox correspondant dans la
colonne B au produit de la cie DEF, je voudrais qu'Excel commence la
recherche à partir de la ligne correspondant au premier DEF de la
colonne A. La raison est qu'il y a peut-être 20 cies dont le no de
produit est 123. Jusqu'à présent, Excel part toujours du début de la
colonne B au lieu de la ligne correspondante à la recherche
précédente....
J'espère que c'est plus explicite ainsi... Voici le code...
Private Sub ComboBox1_Change()
Call Trouver
End Sub
Sub Trouver()
'On Error Resume Next
Application.ScreenUpdating = False
Sheet1.Select
Nom = ComboBox1
If ComboBox1 = "" Then Exit Sub
Dim c, fistA
Dim msg, Style, Title, response
Style = vbInformation + vbYesNo
Title = ""
With ActiveSheet().Range("Abbrev") ' Colonne A
Set c = .Find(What:=Nom, after:=Range("A2"), LookIn:=xlValues,
Lookat:=xlWhole, searchdirection:=xlNext, MatchCase:=True)
If c Is Nothing Then
question1 = MsgBox("No such abbreviation found !!", vbOKOnly)
ComboBox2.Value = ""
Exit Sub
End If
If Not c Is Nothing Then
fistA = c.Address
Application.GoTo Reference:=Range(c.Address)
ComboBox2.Value = ActiveCell.Offset(0, 1).Value
ComboBox3.Value = ActiveCell.Offset(0, 2).Value
ActiveCell.Offset(0, 1).Select
Sheet3.Select
End If
End With
Sheet3.Select
End Sub
Ensuite je recommence avec le combobox2, mais je veux que la recherche
commence à la cellule active.
Merci
Denys
Bonsoir,:(
on vous l'a dit et répèté pas de select dans les macros !!!
sauf quand c'est indispensable
et c'est très très très rare.
Désolé, c'est la première fois que j'entends parler de ne pas
sélectionner un objet dans une macro..... Mais puisque tu le dis...
Je vais essayer donc d'être plus explicite. Dans la colonne A se
trouve des abbréviations de cies. ces abbréviations ont trois lettres.
Dans la colonne B, il y a les numéros des produits (trois chiffres).
Puis en colonne C, le nom du produit.
Donc la compagnie DEF se trouve en colonne A peut-être 35 fois si elle
a 35 produits. Avec mon userform, le combobox1 l'usager écrit DEF.
Immédiatement dans le combobox2 apparait le premier numéro à trois
chiffres à côté du premier DEF de la colonne A.
Lorsque j'écris le nombre dans le combobox correspondant dans la
colonne B au produit de la cie DEF, je voudrais qu'Excel commence la
recherche à partir de la ligne correspondant au premier DEF de la
colonne A. La raison est qu'il y a peut-être 20 cies dont le no de
produit est 123. Jusqu'à présent, Excel part toujours du début de la
colonne B au lieu de la ligne correspondante à la recherche
précédente....
J'espère que c'est plus explicite ainsi... Voici le code...
Private Sub ComboBox1_Change()
Call Trouver
End Sub
Sub Trouver()
'On Error Resume Next
Application.ScreenUpdating = False
Sheet1.Select
Nom = ComboBox1
If ComboBox1 = "" Then Exit Sub
Dim c, fistA
Dim msg, Style, Title, response
Style = vbInformation + vbYesNo
Title = ""
With ActiveSheet().Range("Abbrev") ' Colonne A
Set c = .Find(What:=Nom, after:=Range("A2"), LookIn:=xlValues,
Lookat:=xlWhole, searchdirection:=xlNext, MatchCase:=True)
If c Is Nothing Then
question1 = MsgBox("No such abbreviation found !!", vbOKOnly)
ComboBox2.Value = ""
Exit Sub
End If
If Not c Is Nothing Then
fistA = c.Address
Application.GoTo Reference:=Range(c.Address)
ComboBox2.Value = ActiveCell.Offset(0, 1).Value
ComboBox3.Value = ActiveCell.Offset(0, 2).Value
ActiveCell.Offset(0, 1).Select
Sheet3.Select
End If
End With
Sheet3.Select
End Sub
Ensuite je recommence avec le combobox2, mais je veux que la recherche
commence à la cellule active.
Merci
Denys
Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys
Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys
Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys
Bonsoir,
http://cjoint.com/?cxvVdJnlH7
Private Sub UserForm_Initialize()
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
temp = MonDico.items
'Call Tri(temp, LBound(temp), UBound(temp)) ' voir module mod_tri
Me.ComboBox1.List = temp
Me.ComboBox1.ListIndex = 0
End Sub
Private Sub ComboBox1_Change()
Me.ListBox1.Clear
Me.ListBox2.Clear
Set champ = [A:A]
Set c = champ.Find(Me.ComboBox1, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
premier = c.Address
i = 0
Do
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Offset(0, 1).Value
Me.ListBox1.List(i, 1) = c.Offset(0, 2).Value
Me.ListBox2.AddItem c.Offset(0, 2).Value
i = i + 1
Set c = champ.FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
End Sub
JB
On 23 fév, 19:52, "Denys" wrote:Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonsoir,
http://cjoint.com/?cxvVdJnlH7
Private Sub UserForm_Initialize()
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
temp = MonDico.items
'Call Tri(temp, LBound(temp), UBound(temp)) ' voir module mod_tri
Me.ComboBox1.List = temp
Me.ComboBox1.ListIndex = 0
End Sub
Private Sub ComboBox1_Change()
Me.ListBox1.Clear
Me.ListBox2.Clear
Set champ = [A:A]
Set c = champ.Find(Me.ComboBox1, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
premier = c.Address
i = 0
Do
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Offset(0, 1).Value
Me.ListBox1.List(i, 1) = c.Offset(0, 2).Value
Me.ListBox2.AddItem c.Offset(0, 2).Value
i = i + 1
Set c = champ.FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
End Sub
JB
On 23 fév, 19:52, "Denys" <denys.perrea...@rbc.com> wrote:
Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonsoir,
http://cjoint.com/?cxvVdJnlH7
Private Sub UserForm_Initialize()
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
temp = MonDico.items
'Call Tri(temp, LBound(temp), UBound(temp)) ' voir module mod_tri
Me.ComboBox1.List = temp
Me.ComboBox1.ListIndex = 0
End Sub
Private Sub ComboBox1_Change()
Me.ListBox1.Clear
Me.ListBox2.Clear
Set champ = [A:A]
Set c = champ.Find(Me.ComboBox1, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
premier = c.Address
i = 0
Do
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Offset(0, 1).Value
Me.ListBox1.List(i, 1) = c.Offset(0, 2).Value
Me.ListBox2.AddItem c.Offset(0, 2).Value
i = i + 1
Set c = champ.FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
End Sub
JB
On 23 fév, 19:52, "Denys" wrote:Bonjour,
Ce coup-ci, je ne trouve pas. Cela fait suite à ma question posée
précédemment. Avec mon Userform, je fais un Find dans le combobox1
dans la colonne A et Excel sélecte la cellule correspondante.
Ensuite, avec le combobox2 je choisis un nombre de trois chiffres. Là,
je voudrais qu'Excel commence la recherche dans la colonne B à partir
de la cellule active suite à la recherche du combobox1 en descendant.
C'est là que je bloque car je dois associer une plage ou une cellule à
la fonction Find et activecell ne fonctionne pas...
Quelqu'un saurait?
Merci
Denys- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -