Sub AsPos()
Dim go
MaPos = Sheets(OngletVar).Range(VarPos)
MsgBox "MESSAGE A"
MaPosOK = 0
UserFormPos.show
MsgBox "MESSAGE B"
If MaPosOK = 1 Then
Sheets(OngletVar).Range(VarPos) = MaPos
End If
End Sub
Sub AsTrad()
Dim go
MaColTrad = Sheets(OngletVar).Range(VarTrad)
MaTrad = Range(MaColTrad & ActiveCell.Row)
MsgBox "MESSAGE C"
MaTradOK = 0
UserFormTrad.show
MsgBox "MESSAGE D"
If MaTradOK = 1 Then
Range(MaColTrad & ActiveCell.Row) = MaTrad
End If
End Sub
Alors que dans la seconde, tout se déroule normalement, c'est à dire que les
choses se déroulent bien séquentiellement, à savoir récupération de la
variable MaTrad, envoi de celle-ci à la form UserFormTrad où elle est
modifiée, puis après validation dans le form via le bouton OK, remplacée
dans la feuille.
Or dans la première Sub, tout se passe en même temps, c'est à dire que la
procédure n'attend pas la fermeture du UserFormPos pour exécuter ce qui se
passe derrière !!! C'est à n'y rien comprendre !Concrètement, j'ai en
mêmetemps le MESSAGE A, le UserFormPos, puis le MESSAGE B, avant même la
fermeture du Form. Impossible donc de changer la valeur de ma variable.
L'autre Sub étant construite sur le même shéma et fonctionnant parfaitement
bien, je ne comprends vraiment pas. Si quelqu'un a une idée, elle sera la
bienvenue.
Un grand merci
Serge
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
[___FreGoLi___]
Bonjour,
Je n'ai pas fais d'essai, mais la méthode show permet d'ouvrir une fenêtre en mode "modal" ou non (par défaut non). La différence entre les deux est qu'en mode modal, l'exécution s'arrête après le show, et ne reprend qu'une fois la forme fermée.
Les définition des deux formes sont elles identiques à ce sujet (propriété modale à true ou false ?). Si c'est cela, dans ton cas, UserFormPos devrait être non modale et UserFormTrad devrait être modale.
J'ai deux Sub, quasiment identiques :
Sub AsPos() Dim go MaPos = Sheets(OngletVar).Range(VarPos) MsgBox "MESSAGE A" MaPosOK = 0 UserFormPos.show MsgBox "MESSAGE B" If MaPosOK = 1 Then Sheets(OngletVar).Range(VarPos) = MaPos End If End Sub
Sub AsTrad() Dim go MaColTrad = Sheets(OngletVar).Range(VarTrad) MaTrad = Range(MaColTrad & ActiveCell.Row) MsgBox "MESSAGE C" MaTradOK = 0 UserFormTrad.show MsgBox "MESSAGE D" If MaTradOK = 1 Then Range(MaColTrad & ActiveCell.Row) = MaTrad End If End Sub
Alors que dans la seconde, tout se déroule normalement, c'est à dire que les choses se déroulent bien séquentiellement, à savoir récupération de la variable MaTrad, envoi de celle-ci à la form UserFormTrad où elle est modifiée, puis après validation dans le form via le bouton OK, remplacée dans la feuille. Or dans la première Sub, tout se passe en même temps, c'est à dire que la procédure n'attend pas la fermeture du UserFormPos pour exécuter ce qui se passe derrière !!! C'est à n'y rien comprendre !Concrètement, j'ai en mêmetemps le MESSAGE A, le UserFormPos, puis le MESSAGE B, avant même la fermeture du Form. Impossible donc de changer la valeur de ma variable. L'autre Sub étant construite sur le même shéma et fonctionnant parfaitement bien, je ne comprends vraiment pas. Si quelqu'un a une idée, elle sera la bienvenue. Un grand merci Serge
Bonjour,
Je n'ai pas fais d'essai, mais la méthode show permet d'ouvrir une fenêtre
en mode "modal" ou non (par défaut non). La différence entre les deux est
qu'en mode modal, l'exécution s'arrête après le show, et ne reprend qu'une
fois la forme fermée.
Les définition des deux formes sont elles identiques à ce sujet (propriété
modale à true ou false ?). Si c'est cela, dans ton cas, UserFormPos devrait
être non modale et UserFormTrad devrait être modale.
J'ai deux Sub, quasiment identiques :
Sub AsPos()
Dim go
MaPos = Sheets(OngletVar).Range(VarPos)
MsgBox "MESSAGE A"
MaPosOK = 0
UserFormPos.show
MsgBox "MESSAGE B"
If MaPosOK = 1 Then
Sheets(OngletVar).Range(VarPos) = MaPos
End If
End Sub
Sub AsTrad()
Dim go
MaColTrad = Sheets(OngletVar).Range(VarTrad)
MaTrad = Range(MaColTrad & ActiveCell.Row)
MsgBox "MESSAGE C"
MaTradOK = 0
UserFormTrad.show
MsgBox "MESSAGE D"
If MaTradOK = 1 Then
Range(MaColTrad & ActiveCell.Row) = MaTrad
End If
End Sub
Alors que dans la seconde, tout se déroule normalement, c'est à dire que les
choses se déroulent bien séquentiellement, à savoir récupération de la
variable MaTrad, envoi de celle-ci à la form UserFormTrad où elle est
modifiée, puis après validation dans le form via le bouton OK, remplacée
dans la feuille.
Or dans la première Sub, tout se passe en même temps, c'est à dire que la
procédure n'attend pas la fermeture du UserFormPos pour exécuter ce qui se
passe derrière !!! C'est à n'y rien comprendre !Concrètement, j'ai en
mêmetemps le MESSAGE A, le UserFormPos, puis le MESSAGE B, avant même la
fermeture du Form. Impossible donc de changer la valeur de ma variable.
L'autre Sub étant construite sur le même shéma et fonctionnant parfaitement
bien, je ne comprends vraiment pas. Si quelqu'un a une idée, elle sera la
bienvenue.
Un grand merci
Serge
Je n'ai pas fais d'essai, mais la méthode show permet d'ouvrir une fenêtre en mode "modal" ou non (par défaut non). La différence entre les deux est qu'en mode modal, l'exécution s'arrête après le show, et ne reprend qu'une fois la forme fermée.
Les définition des deux formes sont elles identiques à ce sujet (propriété modale à true ou false ?). Si c'est cela, dans ton cas, UserFormPos devrait être non modale et UserFormTrad devrait être modale.
J'ai deux Sub, quasiment identiques :
Sub AsPos() Dim go MaPos = Sheets(OngletVar).Range(VarPos) MsgBox "MESSAGE A" MaPosOK = 0 UserFormPos.show MsgBox "MESSAGE B" If MaPosOK = 1 Then Sheets(OngletVar).Range(VarPos) = MaPos End If End Sub
Sub AsTrad() Dim go MaColTrad = Sheets(OngletVar).Range(VarTrad) MaTrad = Range(MaColTrad & ActiveCell.Row) MsgBox "MESSAGE C" MaTradOK = 0 UserFormTrad.show MsgBox "MESSAGE D" If MaTradOK = 1 Then Range(MaColTrad & ActiveCell.Row) = MaTrad End If End Sub
Alors que dans la seconde, tout se déroule normalement, c'est à dire que les choses se déroulent bien séquentiellement, à savoir récupération de la variable MaTrad, envoi de celle-ci à la form UserFormTrad où elle est modifiée, puis après validation dans le form via le bouton OK, remplacée dans la feuille. Or dans la première Sub, tout se passe en même temps, c'est à dire que la procédure n'attend pas la fermeture du UserFormPos pour exécuter ce qui se passe derrière !!! C'est à n'y rien comprendre !Concrètement, j'ai en mêmetemps le MESSAGE A, le UserFormPos, puis le MESSAGE B, avant même la fermeture du Form. Impossible donc de changer la valeur de ma variable. L'autre Sub étant construite sur le même shéma et fonctionnant parfaitement bien, je ne comprends vraiment pas. Si quelqu'un a une idée, elle sera la bienvenue. Un grand merci Serge
[___FreGoLi___]
Bonjour en repassant:
Vérifie la propriété "showmodal" de tes userform. Une doit être à true (la 2eme), et l'autre à false (la 1ere)
Bonjour en repassant:
Vérifie la propriété "showmodal" de tes userform.
Une doit être à true (la 2eme), et l'autre à false (la 1ere)
Vérifie la propriété "showmodal" de tes userform. Une doit être à true (la 2eme), et l'autre à false (la 1ere)
Serge Hipontoise
Merci à tous les deux pour votre réponse qui est la bonne ! une mauvaise manip accidentelle sans doute merci encore Serge
"Serge Hipontoise" a écrit dans le message de news: 4302e93f$0$5482$
J'ai deux Sub, quasiment identiques :
Sub AsPos() Dim go MaPos = Sheets(OngletVar).Range(VarPos) MsgBox "MESSAGE A" MaPosOK = 0 UserFormPos.show MsgBox "MESSAGE B" If MaPosOK = 1 Then Sheets(OngletVar).Range(VarPos) = MaPos End If End Sub
Sub AsTrad() Dim go MaColTrad = Sheets(OngletVar).Range(VarTrad) MaTrad = Range(MaColTrad & ActiveCell.Row) MsgBox "MESSAGE C" MaTradOK = 0 UserFormTrad.show MsgBox "MESSAGE D" If MaTradOK = 1 Then Range(MaColTrad & ActiveCell.Row) = MaTrad End If End Sub
Alors que dans la seconde, tout se déroule normalement, c'est à dire que les choses se déroulent bien séquentiellement, à savoir récupération de la variable MaTrad, envoi de celle-ci à la form UserFormTrad où elle est modifiée, puis après validation dans le form via le bouton OK, remplacée dans la feuille. Or dans la première Sub, tout se passe en même temps, c'est à dire que la procédure n'attend pas la fermeture du UserFormPos pour exécuter ce qui se passe derrière !!! C'est à n'y rien comprendre !Concrètement, j'ai en mêmetemps le MESSAGE A, le UserFormPos, puis le MESSAGE B, avant même la fermeture du Form. Impossible donc de changer la valeur de ma variable. L'autre Sub étant construite sur le même shéma et fonctionnant parfaitement bien, je ne comprends vraiment pas. Si quelqu'un a une idée, elle sera la bienvenue. Un grand merci Serge
Merci à tous les deux pour votre réponse qui est la bonne !
une mauvaise manip accidentelle sans doute
merci encore
Serge
"Serge Hipontoise" <repondez@surlegroupe.merci> a écrit dans le message de
news: 4302e93f$0$5482$636a15ce@news.free.fr...
J'ai deux Sub, quasiment identiques :
Sub AsPos()
Dim go
MaPos = Sheets(OngletVar).Range(VarPos)
MsgBox "MESSAGE A"
MaPosOK = 0
UserFormPos.show
MsgBox "MESSAGE B"
If MaPosOK = 1 Then
Sheets(OngletVar).Range(VarPos) = MaPos
End If
End Sub
Sub AsTrad()
Dim go
MaColTrad = Sheets(OngletVar).Range(VarTrad)
MaTrad = Range(MaColTrad & ActiveCell.Row)
MsgBox "MESSAGE C"
MaTradOK = 0
UserFormTrad.show
MsgBox "MESSAGE D"
If MaTradOK = 1 Then
Range(MaColTrad & ActiveCell.Row) = MaTrad
End If
End Sub
Alors que dans la seconde, tout se déroule normalement, c'est à dire que
les choses se déroulent bien séquentiellement, à savoir récupération de la
variable MaTrad, envoi de celle-ci à la form UserFormTrad où elle est
modifiée, puis après validation dans le form via le bouton OK, remplacée
dans la feuille.
Or dans la première Sub, tout se passe en même temps, c'est à dire que la
procédure n'attend pas la fermeture du UserFormPos pour exécuter ce qui se
passe derrière !!! C'est à n'y rien comprendre !Concrètement, j'ai en
mêmetemps le MESSAGE A, le UserFormPos, puis le MESSAGE B, avant même la
fermeture du Form. Impossible donc de changer la valeur de ma variable.
L'autre Sub étant construite sur le même shéma et fonctionnant
parfaitement bien, je ne comprends vraiment pas. Si quelqu'un a une idée,
elle sera la bienvenue.
Un grand merci
Serge
Merci à tous les deux pour votre réponse qui est la bonne ! une mauvaise manip accidentelle sans doute merci encore Serge
"Serge Hipontoise" a écrit dans le message de news: 4302e93f$0$5482$
J'ai deux Sub, quasiment identiques :
Sub AsPos() Dim go MaPos = Sheets(OngletVar).Range(VarPos) MsgBox "MESSAGE A" MaPosOK = 0 UserFormPos.show MsgBox "MESSAGE B" If MaPosOK = 1 Then Sheets(OngletVar).Range(VarPos) = MaPos End If End Sub
Sub AsTrad() Dim go MaColTrad = Sheets(OngletVar).Range(VarTrad) MaTrad = Range(MaColTrad & ActiveCell.Row) MsgBox "MESSAGE C" MaTradOK = 0 UserFormTrad.show MsgBox "MESSAGE D" If MaTradOK = 1 Then Range(MaColTrad & ActiveCell.Row) = MaTrad End If End Sub
Alors que dans la seconde, tout se déroule normalement, c'est à dire que les choses se déroulent bien séquentiellement, à savoir récupération de la variable MaTrad, envoi de celle-ci à la form UserFormTrad où elle est modifiée, puis après validation dans le form via le bouton OK, remplacée dans la feuille. Or dans la première Sub, tout se passe en même temps, c'est à dire que la procédure n'attend pas la fermeture du UserFormPos pour exécuter ce qui se passe derrière !!! C'est à n'y rien comprendre !Concrètement, j'ai en mêmetemps le MESSAGE A, le UserFormPos, puis le MESSAGE B, avant même la fermeture du Form. Impossible donc de changer la valeur de ma variable. L'autre Sub étant construite sur le même shéma et fonctionnant parfaitement bien, je ne comprends vraiment pas. Si quelqu'un a une idée, elle sera la bienvenue. Un grand merci Serge