il était tard hier soir lorsque j'ai regardé le fichier,
effectivement, tu as raison. Habituellement, je préfère
utiliser quelque chose comme : http://cjoint.com/?dioOVdVcEP
Suggestion : Si les noms des contrôles ressemblaient
à ceci :
Pour les textbox : Tdata + index de 1 à 5
Pour les combobox : Cdata + Index de 1 à 6
Lorsque requis, tu pourrais appeler les procédures...
Cela rend le code plus lisible, fluide et probablement plus rapide
et surtout plus rapide pour la saisie du code !
'-----------------------------
Sub Modifier_La_Couleur(Couleur As String)
Dim MaCouleur As Long, a as Integer
If Couleur = "Green" Then
Macouleur = RGB(204, 255, 204) 'change them to green
ElseIf Couleur = "Red" Then
Macouleur = RGB(255, 204, 204) 'Change them to red
End If
For a = 1 To 5
With Me.Controls(tdata & a)
.BackColor = Macouleur
End With
Next
For a = 1 To 6
With Me.Controls(cdata & a)
.BackColor = Macouleur
End With
Next
End Sub
'-----------------------------
Sub Enabled_Control(Etat As Boolean)
Dim a As Integer
For a = 1 To 5
With Me.Controls(tdata & a)
.Enabled = Etat
End With
Next
For a = 1 To 6
With Me.Controls(cdata & a)
.Enabled = Etat
End With
Next
End Sub
'-----------------------------
"Daniel.C" a écrit dans le message de groupe de
discussion :
Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec laquelle
l'application a été développée... mais ça relève plus du "bug" que d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque l'événement change car le "contenu" du listbox s'en trouve
modifier. D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et 2007. Je
n'ai pu tester avec les versions précédentes. Nul n'est tenu à l'impossible
! ;-)
"Daniel.C" a écrit dans le message de groupe de
discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de groupe de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
il était tard hier soir lorsque j'ai regardé le fichier,
effectivement, tu as raison. Habituellement, je préfère
utiliser quelque chose comme : http://cjoint.com/?dioOVdVcEP
Suggestion : Si les noms des contrôles ressemblaient
à ceci :
Pour les textbox : Tdata + index de 1 à 5
Pour les combobox : Cdata + Index de 1 à 6
Lorsque requis, tu pourrais appeler les procédures...
Cela rend le code plus lisible, fluide et probablement plus rapide
et surtout plus rapide pour la saisie du code !
'-----------------------------
Sub Modifier_La_Couleur(Couleur As String)
Dim MaCouleur As Long, a as Integer
If Couleur = "Green" Then
Macouleur = RGB(204, 255, 204) 'change them to green
ElseIf Couleur = "Red" Then
Macouleur = RGB(255, 204, 204) 'Change them to red
End If
For a = 1 To 5
With Me.Controls(tdata & a)
.BackColor = Macouleur
End With
Next
For a = 1 To 6
With Me.Controls(cdata & a)
.BackColor = Macouleur
End With
Next
End Sub
'-----------------------------
Sub Enabled_Control(Etat As Boolean)
Dim a As Integer
For a = 1 To 5
With Me.Controls(tdata & a)
.Enabled = Etat
End With
Next
For a = 1 To 6
With Me.Controls(cdata & a)
.Enabled = Etat
End With
Next
End Sub
'-----------------------------
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : ujj4kUqvKHA.4908@TK2MSFTNGP06.phx.gbl...
Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
Daniel
Bonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec laquelle
l'application a été développée... mais ça relève plus du "bug" que d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque l'événement change car le "contenu" du listbox s'en trouve
modifier. D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et 2007. Je
n'ai pu tester avec les versions précédentes. Nul n'est tenu à l'impossible
! ;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : eJXW7TkvKHA.404@TK2MSFTNGP02.phx.gbl...
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
Daniel
En attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : ORQpuxivKHA.732@TK2MSFTNGP06.phx.gbl...
Je viens de recréer un classeur reprenant cette partie du code et je ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
Daniel
Bonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : umIdL6hvKHA.4552@TK2MSFTNGP04.phx.gbl...
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
il était tard hier soir lorsque j'ai regardé le fichier,
effectivement, tu as raison. Habituellement, je préfère
utiliser quelque chose comme : http://cjoint.com/?dioOVdVcEP
Suggestion : Si les noms des contrôles ressemblaient
à ceci :
Pour les textbox : Tdata + index de 1 à 5
Pour les combobox : Cdata + Index de 1 à 6
Lorsque requis, tu pourrais appeler les procédures...
Cela rend le code plus lisible, fluide et probablement plus rapide
et surtout plus rapide pour la saisie du code !
'-----------------------------
Sub Modifier_La_Couleur(Couleur As String)
Dim MaCouleur As Long, a as Integer
If Couleur = "Green" Then
Macouleur = RGB(204, 255, 204) 'change them to green
ElseIf Couleur = "Red" Then
Macouleur = RGB(255, 204, 204) 'Change them to red
End If
For a = 1 To 5
With Me.Controls(tdata & a)
.BackColor = Macouleur
End With
Next
For a = 1 To 6
With Me.Controls(cdata & a)
.BackColor = Macouleur
End With
Next
End Sub
'-----------------------------
Sub Enabled_Control(Etat As Boolean)
Dim a As Integer
For a = 1 To 5
With Me.Controls(tdata & a)
.Enabled = Etat
End With
Next
For a = 1 To 6
With Me.Controls(cdata & a)
.Enabled = Etat
End With
Next
End Sub
'-----------------------------
"Daniel.C" a écrit dans le message de groupe de
discussion :
Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec laquelle
l'application a été développée... mais ça relève plus du "bug" que d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque l'événement change car le "contenu" du listbox s'en trouve
modifier. D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et 2007. Je
n'ai pu tester avec les versions précédentes. Nul n'est tenu à l'impossible
! ;-)
"Daniel.C" a écrit dans le message de groupe de
discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de groupe de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
DanielPrivate Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" a écrit dans le message de news:Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la macro
listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit
:
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu à
l'impossible !
;-)
"Daniel.C" a écrit dans le message de groupe
de discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande
:
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
Daniel
Private Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
ujj4kUqvKHA.4908@TK2MSFTNGP06.phx.gbl...
Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la macro
listbox1_change.
Daniel
Bonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit
:
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu à
l'impossible !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe
de discussion : eJXW7TkvKHA.404@TK2MSFTNGP02.phx.gbl...
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
Daniel
En attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de
discussion : ORQpuxivKHA.732@TK2MSFTNGP06.phx.gbl...
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
Daniel
Bonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de
discussion : umIdL6hvKHA.4552@TK2MSFTNGP04.phx.gbl...
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande
:
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
DanielPrivate Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" a écrit dans le message de news:Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la macro
listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit
:
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu à
l'impossible !
;-)
"Daniel.C" a écrit dans le message de groupe
de discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande
:
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Je ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" a écrit dans le message de news:
Omd%Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
DanielPrivate Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" a écrit dans le message de news:Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la macro
listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit
:
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu à
l'impossible !
;-)
"Daniel.C" a écrit dans le message de groupe
de discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de groupe
de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande
:
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Je ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
Omd%23uktvKHA.3536@TK2MSFTNGP06.phx.gbl...
Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
Daniel
Private Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
ujj4kUqvKHA.4908@TK2MSFTNGP06.phx.gbl...
Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la macro
listbox1_change.
Daniel
Bonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit
:
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu à
l'impossible !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe
de discussion : eJXW7TkvKHA.404@TK2MSFTNGP02.phx.gbl...
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
Daniel
En attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe
de
discussion : ORQpuxivKHA.732@TK2MSFTNGP06.phx.gbl...
Je viens de recréer un classeur reprenant cette partie du code et je ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
Daniel
Bonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de
discussion : umIdL6hvKHA.4552@TK2MSFTNGP04.phx.gbl...
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande
:
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Je ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" a écrit dans le message de news:
Omd%Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
DanielPrivate Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" a écrit dans le message de news:Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la macro
listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme suit
:
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu à
l'impossible !
;-)
"Daniel.C" a écrit dans le message de groupe
de discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit". On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro :
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de groupe
de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la commande
:
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Et pourtant, si. J'ai réalisé un petit classeur ce matin pour m'en
assurer.
DanielJe ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" a écrit dans le message de news:
Omd%Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que
le listindex change.
Cordialement.
DanielPrivate Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" a écrit dans le message de news:Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme
suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu
à l'impossible !
;-)
"Daniel.C" a écrit dans le message de
groupe de discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux
en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit".
On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro
:
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur
la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la
commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne
se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Et pourtant, si. J'ai réalisé un petit classeur ce matin pour m'en
assurer.
Daniel
Je ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
Omd%23uktvKHA.3536@TK2MSFTNGP06.phx.gbl...
Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que
le listindex change.
Cordialement.
Daniel
Private Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
ujj4kUqvKHA.4908@TK2MSFTNGP06.phx.gbl...
Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
Daniel
Bonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme
suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu
à l'impossible !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de discussion : eJXW7TkvKHA.404@TK2MSFTNGP02.phx.gbl...
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux
en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit".
On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro
:
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
Daniel
En attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de
discussion : ORQpuxivKHA.732@TK2MSFTNGP06.phx.gbl...
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur
la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
Daniel
Bonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de
discussion : umIdL6hvKHA.4552@TK2MSFTNGP04.phx.gbl...
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la
commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne
se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Et pourtant, si. J'ai réalisé un petit classeur ce matin pour m'en
assurer.
DanielJe ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" a écrit dans le message de news:
Omd%Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que
le listindex change.
Cordialement.
DanielPrivate Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" a écrit dans le message de news:Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme
suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu
à l'impossible !
;-)
"Daniel.C" a écrit dans le message de
groupe de discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux
en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit".
On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro
:
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur
la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la
commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne
se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Je viens de tester sur Excel 2003 et 97, et l'événement ListBox1_Change n'est
plus déclenché après :
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
.RowSource = strRowSource
End With
"Daniel.C" a écrit dans le message de news:Et pourtant, si. J'ai réalisé un petit classeur ce matin pour m'en assurer.
DanielJe ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" a écrit dans le message de news:
Omd%Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
DanielPrivate Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" a écrit dans le message de news:Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme
suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu
à l'impossible !
;-)
"Daniel.C" a écrit dans le message de
groupe de discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit".
On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro
:
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la
commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne
se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Je viens de tester sur Excel 2003 et 97, et l'événement ListBox1_Change n'est
plus déclenché après :
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
.RowSource = strRowSource
End With
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
uVqmt4tvKHA.5340@TK2MSFTNGP04.phx.gbl...
Et pourtant, si. J'ai réalisé un petit classeur ce matin pour m'en assurer.
Daniel
Je ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
Omd%23uktvKHA.3536@TK2MSFTNGP06.phx.gbl...
Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
Daniel
Private Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de news:
ujj4kUqvKHA.4908@TK2MSFTNGP06.phx.gbl...
Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
Daniel
Bonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme
suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu
à l'impossible !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de discussion : eJXW7TkvKHA.404@TK2MSFTNGP02.phx.gbl...
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit".
On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro
:
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
Daniel
En attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de
discussion : ORQpuxivKHA.732@TK2MSFTNGP06.phx.gbl...
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
Daniel
Bonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de
groupe de
discussion : umIdL6hvKHA.4552@TK2MSFTNGP04.phx.gbl...
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la
commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne
se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel
Je viens de tester sur Excel 2003 et 97, et l'événement ListBox1_Change n'est
plus déclenché après :
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
.RowSource = strRowSource
End With
"Daniel.C" a écrit dans le message de news:Et pourtant, si. J'ai réalisé un petit classeur ce matin pour m'en assurer.
DanielJe ne comprends pas ce que tu dis
car le listbox_change n'est plus déclenché par les modifications sur la
feuille
après la réinitialisation de la propriété RowSource.
Exemple:
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
modifie la feuille et le Listbox est automatiquement mis à jour sans que
l'événement Listbox_Change soit déclenché.
Mishell
"Daniel.C" a écrit dans le message de news:
Omd%Bonjour.
Merci, mais le listbox_change réinialise les autres contrôles sans que le
listindex change.
Cordialement.
DanielPrivate Sub CommandButton10_Click()
aaa = ListBox1.ListIndex 'Memoriser ListIndex
If Database_Unlocked = True Then
Dim strRowSource As String
With ListBox1
strRowSource = .RowSource
.RowSource = vbNullString
'Set back so it updates, use a new RowSource
.RowSource = strRowSource
End With
'myTag = True
Sheet3.Cells(aaa + 2, 1) = UserForm1.TextBox50.Text
Sheet3.Cells(aaa + 2, 5) = UserForm1.TextBox51.Text
Sheet3.Cells(aaa + 2, 2) = UserForm1.ComboBox2.Text
Sheet3.Cells(aaa + 2, 3) = UserForm1.ComboBox3.Text
Sheet3.Cells(aaa + 2, 4) = UserForm1.ComboBox4.Text
Sheet3.Cells(aaa + 2, 6) = UserForm1.ComboBox1.Text
Sheet3.Cells(aaa + 2, 7) = UserForm1.ComboBox5.Text
Sheet3.Cells(aaa + 2, 8) = UserForm1.TextBox57.Text
Sheet3.Cells(aaa + 2, 11) = UserForm1.TextBox60.Text
ListBox1.ListIndex = aaa 'Retablir ListIndex
Else
Dim response
response = MsgBox("Only Administrators can amend this Database!",
vbCritical, "Warning!")
End If
'myTag = False
End Sub
Mishell
"Daniel.C" a écrit dans le message de news:Denis, je viens de reproduire le problème. Je pense que cela vient du
fait que le listbox est rempli avec la propriété "rowsource". Quand on
modifie une cellule de la plage rowsource, cela doit déclencher la
macro listbox1_change.
DanielBonjour Daniel,
Tu as une solution viable avec l'usage d'une variable booléenne.
Je serais curieux de savoir qu'elle était la version d'Excel avec
laquelle
l'application a été développée... mais ça relève plus du "bug" que
d'une
explication rationnelle.
Si on devait tenter une explication, on pourrait la formuler comme
suit :
Lorsque tu cliques sur le bouton "Update" le fait que tu édites une
cellule de la feuille qui est la source (RowSource) du listbox, cela
provoque
l'événement change car le "contenu" du listbox s'en trouve modifier.
D'ailleurs, si tu modifies l'événement "Listbox1_Change" pour
l'"événement_clic" le résultat est le même.
Heureusement, la situation a été corrigée avec les versions 2003 et
2007. Je n'ai pu tester avec les versions précédentes. Nul n'est tenu
à l'impossible !
;-)
"Daniel.C" a écrit dans le message de
groupe de discussion :
Je n'en ai pas vu, mais, comme il y a pas mal de contrôles, je peux en
avoir loupé un.
Le classeur est là :
http://www.cijoint.fr/cjlink.php?file=cj201003/cijcAMZUlG.xls
Choisis la feuille Sheet1, clique sur le bouton "Log claims" et le
userform1 s'affiche. Clique sur l'onglet "Daily throughput" du
multipage, puis sur l'onglet "List of Claims". Les données de Sheet3
s'affichent dans le listbox. Choisis une ligne et clique sur "Edit".
On
te demande le mot de passe (Mango0ne) (o, zéro). Change une donnée et
clique sur Update. Si tu as mis un point d'arrêt au début de la macro
:
Private Sub CommandButton10_Click()
tu peux observer ce que j'ai décrit.
DanielEn attendant d'avoir sa réponse, tu peux toujours
vérifier si certains contrôles du formulaire utilisent
la propriété "ControlSource". Si oui, tu as ta réponse !
;-)
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Je viens de recréer un classeur reprenant cette partie du code et je
ne
reproduis pas le problème. Je vais demander à l'auteur du classeur la
permission de mettre son classeur sur cjoint.
Merci de ton implication.
DanielBonjour Daniel,
Voici un exemple : http://cjoint.com/?dhumtUCl3M
L'exemple présenté ne fait pas déclencher l'événement.
Mais comme il y a plusieurs façons de procéder, je vais
attendre que tu présentes ta manière de procéder avant
d'aller de l'avant.
"Daniel.C" a écrit dans le message de
groupe de
discussion :
Bonjour à tous.
Quelqu'un peut-il m'expliquer pourquoi, lorsque j'exécute la
commande :
Feuil3.Cells(ListBox1.ListIndex + 2, 1) = UserForm1.TextBox2.Text
la macro évènementielle "ListBox1_Change" se déclenche ? (la ligne
se
trouve dans le code de CommandButton_Click). J'ai contourné avec un
switch, mais je voudrais comprendre.
Merci d'avance.
Daniel