OVH Cloud OVH Cloud

UserForm

6 réponses
Avatar
blackboy
Bonjour,
J'ai créé une macro avec un bouton sur une feuille excel qui ouvre une boite
de dialogue, l'utilisateur doit inscrire un code, puis clique sur le bouton
'Lancer' et je veux que le résultat s'affiche dans une case de cette boite de
dialogue.
A savoir donc que je veux mettre un code visual sur ce bouton 'Lancer' pour
que la recherche s'effectue sur deux colonnes de la feuille (la colonne H :
celle des codes et la colonne I : la réponse ) ex H I
abc 12
afw 15

Je veux que la réponse de la case soit le résultat de la colonne I
respectivement à la saisie du code correspondant
Un peu confu ?
merci

6 réponses

Avatar
Michel Pierron
Bonjour blackboy;
' Label affiche le résultat de la colonne I
Private Sub CommandButton1_Click()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
Dim x&: x = nRow(ActiveSheet, 8, TextBox1, True)
If x Then
Label1 = ActiveSheet.Cells(x, 9)
Else
MsgBox "Code " & TextBox1 & " non trouvé !", 64
End If
End Sub

Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean)
Dim W As Range
Set W = sh.Columns(Col).Find(What, LookAt:=IIf(Whole, 1, 2))
If Not W Is Nothing Then nRow = W.Row
End Function

MP

"blackboy" a écrit dans le message de
news:
Bonjour,
J'ai créé une macro avec un bouton sur une feuille excel qui ouvre une
boite

de dialogue, l'utilisateur doit inscrire un code, puis clique sur le
bouton

'Lancer' et je veux que le résultat s'affiche dans une case de cette boite
de

dialogue.
A savoir donc que je veux mettre un code visual sur ce bouton 'Lancer'
pour

que la recherche s'effectue sur deux colonnes de la feuille (la colonne H
:

celle des codes et la colonne I : la réponse ) ex H I
abc 12
afw 15

Je veux que la réponse de la case soit le résultat de la colonne I
respectivement à la saisie du code correspondant
Un peu confu ?
merci


Avatar
blackboy
Bonjour,
J'ai bien mis ton code sur le bouton 'Lancer'
J'ai une erreur de compilation sur la deuxième partie du texte (private
fuction.....)
J'ai le message suivant : seuls des commentaires peuvent apparaitre après
End Sub, End Function ou End property et dans le code il me souligne en jaune
'Private function nows...jusqu'à..Boolean) et souligne en bleu 'Ed Function'
Merci


Bonjour blackboy;
' Label affiche le résultat de la colonne I
Private Sub CommandButton1_Click()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
Dim x&: x = nRow(ActiveSheet, 8, TextBox1, True)
If x Then
Label1 = ActiveSheet.Cells(x, 9)
Else
MsgBox "Code " & TextBox1 & " non trouvé !", 64
End If
End Sub

Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean)
Dim W As Range
Set W = sh.Columns(Col).Find(What, LookAt:=IIf(Whole, 1, 2))
If Not W Is Nothing Then nRow = W.Row
End Function

MP

"blackboy" a écrit dans le message de
news:
Bonjour,
J'ai créé une macro avec un bouton sur une feuille excel qui ouvre une
boite

de dialogue, l'utilisateur doit inscrire un code, puis clique sur le
bouton

'Lancer' et je veux que le résultat s'affiche dans une case de cette boite
de

dialogue.
A savoir donc que je veux mettre un code visual sur ce bouton 'Lancer'
pour

que la recherche s'effectue sur deux colonnes de la feuille (la colonne H
:

celle des codes et la colonne I : la réponse ) ex H I
abc 12
afw 15

Je veux que la réponse de la case soit le résultat de la colonne I
respectivement à la saisie du code correspondant
Un peu confu ?
merci







Avatar
Michel Pierron
Re blackboy;
Ceci est du à Outlook ou à la recopie:
si Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean) est sur 2 lignes, place ton curseur
juste à la fin de la première ligne supprime ce qui est derrière (touche del
ou suppr) jusqu'à ce que tout soit sur une seule ligne.
MP

"blackboy" a écrit dans le message de
news:
Bonjour,
J'ai bien mis ton code sur le bouton 'Lancer'
J'ai une erreur de compilation sur la deuxième partie du texte (private
fuction.....)
J'ai le message suivant : seuls des commentaires peuvent apparaitre après
End Sub, End Function ou End property et dans le code il me souligne en
jaune

'Private function nows...jusqu'à..Boolean) et souligne en bleu 'Ed
Function'

Merci


Bonjour blackboy;
' Label affiche le résultat de la colonne I
Private Sub CommandButton1_Click()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
Dim x&: x = nRow(ActiveSheet, 8, TextBox1, True)
If x Then
Label1 = ActiveSheet.Cells(x, 9)
Else
MsgBox "Code " & TextBox1 & " non trouvé !", 64
End If
End Sub

Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean)
Dim W As Range
Set W = sh.Columns(Col).Find(What, LookAt:=IIf(Whole, 1, 2))
If Not W Is Nothing Then nRow = W.Row
End Function

MP

"blackboy" a écrit dans le message
de


news:
Bonjour,
J'ai créé une macro avec un bouton sur une feuille excel qui ouvre une
boite

de dialogue, l'utilisateur doit inscrire un code, puis clique sur le
bouton

'Lancer' et je veux que le résultat s'affiche dans une case de cette
boite



de
dialogue.
A savoir donc que je veux mettre un code visual sur ce bouton 'Lancer'
pour

que la recherche s'effectue sur deux colonnes de la feuille (la
colonne H



:
celle des codes et la colonne I : la réponse ) ex H I
abc 12
afw 15

Je veux que la réponse de la case soit le résultat de la colonne I
respectivement à la saisie du code correspondant
Un peu confu ?
merci









Avatar
blackboy
c'est Ok la macro fonctionne mais pas comme je désire.
En fait, ma colonne H comporte tous les codes resencés
ma colonne I tous les délais correspondants. Donc à un code correspond un
délai associé. Je veux par exemple avec cette boite de dialogue renseigner la
case 'code', lancer la recherche par un bouton, et le délai correspondant
doit s'afficher dans une autre case de la boite de dialogue et non modifier
ma feuille excel
Merci


Re blackboy;
Ceci est du à Outlook ou à la recopie:
si Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean) est sur 2 lignes, place ton curseur
juste à la fin de la première ligne supprime ce qui est derrière (touche del
ou suppr) jusqu'à ce que tout soit sur une seule ligne.
MP

"blackboy" a écrit dans le message de
news:
Bonjour,
J'ai bien mis ton code sur le bouton 'Lancer'
J'ai une erreur de compilation sur la deuxième partie du texte (private
fuction.....)
J'ai le message suivant : seuls des commentaires peuvent apparaitre après
End Sub, End Function ou End property et dans le code il me souligne en
jaune

'Private function nows...jusqu'à..Boolean) et souligne en bleu 'Ed
Function'

Merci


Bonjour blackboy;
' Label affiche le résultat de la colonne I
Private Sub CommandButton1_Click()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
Dim x&: x = nRow(ActiveSheet, 8, TextBox1, True)
If x Then
Label1 = ActiveSheet.Cells(x, 9)
Else
MsgBox "Code " & TextBox1 & " non trouvé !", 64
End If
End Sub

Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean)
Dim W As Range
Set W = sh.Columns(Col).Find(What, LookAt:=IIf(Whole, 1, 2))
If Not W Is Nothing Then nRow = W.Row
End Function

MP

"blackboy" a écrit dans le message
de


news:
Bonjour,
J'ai créé une macro avec un bouton sur une feuille excel qui ouvre une
boite

de dialogue, l'utilisateur doit inscrire un code, puis clique sur le
bouton

'Lancer' et je veux que le résultat s'affiche dans une case de cette
boite



de
dialogue.
A savoir donc que je veux mettre un code visual sur ce bouton 'Lancer'
pour

que la recherche s'effectue sur deux colonnes de la feuille (la
colonne H



:
celle des codes et la colonne I : la réponse ) ex H I
abc 12
afw 15

Je veux que la réponse de la case soit le résultat de la colonne I
respectivement à la saisie du code correspondant
Un peu confu ?
merci














Avatar
Michel Pierron
Re blackboy;
Publie ton code pour voir car c'est ce que fait la macro; elle renvoie dans
label1 le délai associé au code trouvé dans la colonne H coïncidant avec le
code de textbox1. En aucun cas la feuille n'est modifiée.
MP

"blackboy" a écrit dans le message de
news:
c'est Ok la macro fonctionne mais pas comme je désire.
En fait, ma colonne H comporte tous les codes resencés
ma colonne I tous les délais correspondants. Donc à un code correspond un
délai associé. Je veux par exemple avec cette boite de dialogue renseigner
la

case 'code', lancer la recherche par un bouton, et le délai correspondant
doit s'afficher dans une autre case de la boite de dialogue et non
modifier

ma feuille excel
Merci


Re blackboy;
Ceci est du à Outlook ou à la recopie:
si Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean) est sur 2 lignes, place ton curseur
juste à la fin de la première ligne supprime ce qui est derrière (touche
del


ou suppr) jusqu'à ce que tout soit sur une seule ligne.
MP

"blackboy" a écrit dans le message
de


news:
Bonjour,
J'ai bien mis ton code sur le bouton 'Lancer'
J'ai une erreur de compilation sur la deuxième partie du texte
(private



fuction.....)
J'ai le message suivant : seuls des commentaires peuvent apparaitre
après



End Sub, End Function ou End property et dans le code il me souligne
en



jaune
'Private function nows...jusqu'à..Boolean) et souligne en bleu 'Ed
Function'

Merci


Bonjour blackboy;
' Label affiche le résultat de la colonne I
Private Sub CommandButton1_Click()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
Dim x&: x = nRow(ActiveSheet, 8, TextBox1, True)
If x Then
Label1 = ActiveSheet.Cells(x, 9)
Else
MsgBox "Code " & TextBox1 & " non trouvé !", 64
End If
End Sub

Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean)
Dim W As Range
Set W = sh.Columns(Col).Find(What, LookAt:=IIf(Whole, 1, 2))
If Not W Is Nothing Then nRow = W.Row
End Function

MP

"blackboy" a écrit dans le
message




de
news:
Bonjour,
J'ai créé une macro avec un bouton sur une feuille excel qui ouvre
une





boite
de dialogue, l'utilisateur doit inscrire un code, puis clique sur
le





bouton
'Lancer' et je veux que le résultat s'affiche dans une case de
cette





boite
de
dialogue.
A savoir donc que je veux mettre un code visual sur ce bouton
'Lancer'





pour
que la recherche s'effectue sur deux colonnes de la feuille (la
colonne H



:
celle des codes et la colonne I : la réponse ) ex H I
abc 12
afw 15

Je veux que la réponse de la case soit le résultat de la colonne I
respectivement à la saisie du code correspondant
Un peu confu ?
merci
















Avatar
blackboy
Voilà le code, je me suis permis par mail de te joindre mon fichier, je ne
sais pas si cela se fait ou pas ?

Private Sub CommandButton1_Click()
Unload UserForm1
End Sub

Private Sub CommandButton2_Click()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
Dim x&: x = nRow(ActiveSheet, 8, TextBox1, True)
If x Then
Label1 = ActiveSheet.Cells(x, 9)
Else
MsgBox "Code " & TextBox1 & " non trouvé !", 64
End If
End Sub

Private Function nRow&(sh As Worksheet, ByVal Col As Byte, What As Variant,
Whole As Boolean)
Dim W As Range
Set W = sh.Columns(Col).Find(What, LookAt:=IIf(Whole, 1, 2))
If Not W Is Nothing Then nRow = W.Row
End Function

Private Sub TextBox1_Change()
[H119] = UserForm1.TextBox1
End Sub

Private Sub TextBox2_Change()
[I119] = UserForm1.TextBox2
End Sub


Re blackboy;
Publie ton code pour voir car c'est ce que fait la macro; elle renvoie dans
label1 le délai associé au code trouvé dans la colonne H coïncidant avec le
code de textbox1. En aucun cas la feuille n'est modifiée.
MP

"blackboy" a écrit dans le message de
news:
c'est Ok la macro fonctionne mais pas comme je désire.
En fait, ma colonne H comporte tous les codes resencés
ma colonne I tous les délais correspondants. Donc à un code correspond un
délai associé. Je veux par exemple avec cette boite de dialogue renseigner
la

case 'code', lancer la recherche par un bouton, et le délai correspondant
doit s'afficher dans une autre case de la boite de dialogue et non
modifier

ma feuille excel
Merci


Re blackboy;
Ceci est du à Outlook ou à la recopie:
si Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean) est sur 2 lignes, place ton curseur
juste à la fin de la première ligne supprime ce qui est derrière (touche
del


ou suppr) jusqu'à ce que tout soit sur une seule ligne.
MP

"blackboy" a écrit dans le message
de


news:
Bonjour,
J'ai bien mis ton code sur le bouton 'Lancer'
J'ai une erreur de compilation sur la deuxième partie du texte
(private



fuction.....)
J'ai le message suivant : seuls des commentaires peuvent apparaitre
après



End Sub, End Function ou End property et dans le code il me souligne
en



jaune
'Private function nows...jusqu'à..Boolean) et souligne en bleu 'Ed
Function'

Merci


Bonjour blackboy;
' Label affiche le résultat de la colonne I
Private Sub CommandButton1_Click()
If TextBox1 = "" Then TextBox1.SetFocus: Exit Sub
Dim x&: x = nRow(ActiveSheet, 8, TextBox1, True)
If x Then
Label1 = ActiveSheet.Cells(x, 9)
Else
MsgBox "Code " & TextBox1 & " non trouvé !", 64
End If
End Sub

Private Function nRow&(sh As Worksheet, ByVal Col As Byte _
, What As Variant, Whole As Boolean)
Dim W As Range
Set W = sh.Columns(Col).Find(What, LookAt:=IIf(Whole, 1, 2))
If Not W Is Nothing Then nRow = W.Row
End Function

MP

"blackboy" a écrit dans le
message




de
news:
Bonjour,
J'ai créé une macro avec un bouton sur une feuille excel qui ouvre
une





boite
de dialogue, l'utilisateur doit inscrire un code, puis clique sur
le





bouton
'Lancer' et je veux que le résultat s'affiche dans une case de
cette





boite
de
dialogue.
A savoir donc que je veux mettre un code visual sur ce bouton
'Lancer'





pour
que la recherche s'effectue sur deux colonnes de la feuille (la
colonne H



:
celle des codes et la colonne I : la réponse ) ex H I
abc 12
afw 15

Je veux que la réponse de la case soit le résultat de la colonne I
respectivement à la saisie du code correspondant
Un peu confu ?
merci