Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Message box et reference de cellule

10 réponses
Avatar
nicolas S2
bonjour,
La question et dans le code

Sub modif_travail_QuandClic()

Dim li

Selection.End(xlToLeft).Select

li = ActiveCell.Value + 42 'à la gauche de le ligne, la valeur de la
cellule
'corespond au N° de la ligne (sur une autre
feuille)
'des valeurs trouvées par index-equiv
Application.Goto Reference:="annee"
ActiveCell.Offset(li, -1).Select
'en fin de code, je souhaiterai avoir un
message box
'qui me propose de revenir à la cellule
active en début de code

End Sub

merci de vos réponses

10 réponses

Avatar
Jacky
Bonjour,
Par exemple, sans avoir testé tout le code

en début de macro
x = ActiveCell.Address

et en fin de macro
Range(x).Activate
ou
Range(x).Select

--
Salutations
JJ



"nicolas S2" a écrit dans le message de
news: 4622042b$0$29881$
bonjour,
La question et dans le code

Sub modif_travail_QuandClic()

Dim li

Selection.End(xlToLeft).Select

li = ActiveCell.Value + 42 'à la gauche de le ligne, la valeur de la
cellule
'corespond au N° de la ligne (sur une autre
feuille)
'des valeurs trouvées par index-equiv
Application.Goto Reference:="annee"
ActiveCell.Offset(li, -1).Select
'en fin de code, je souhaiterai avoir un
message box
'qui me propose de revenir à la cellule
active en début de code

End Sub

merci de vos réponses





Avatar
Jacky
Et avec une demande sous forme de Msgbox
en fin de macro
'-----
If MsgBox("Voulez-vous revenir en " & x, 4) = 6 Then Range(x).Activate
'--------
--
Salutations
JJ



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

Bonjour,
Par exemple, sans avoir testé tout le code

en début de macro
x = ActiveCell.Address

et en fin de macro
Range(x).Activate
ou
Range(x).Select

--
Salutations
JJ



"nicolas S2" a écrit dans le message de
news: 4622042b$0$29881$
bonjour,
La question et dans le code

Sub modif_travail_QuandClic()

Dim li

Selection.End(xlToLeft).Select

li = ActiveCell.Value + 42 'à la gauche de le ligne, la valeur de la
cellule
'corespond au N° de la ligne (sur une
autre
feuille)
'des valeurs trouvées par index-equiv
Application.Goto Reference:="annee"
ActiveCell.Offset(li, -1).Select
'en fin de code, je souhaiterai avoir un
message box
'qui me propose de revenir à la cellule
active en début de code

End Sub

merci de vos réponses









Avatar
nicolas S2
Merci pour ta réponse

J'ai fait ceci

Sub modif_travail_QuandClic()

Dim li, x
x = ActiveCell.Address
Selection.End(xlToLeft).Select

li = ActiveCell.Value + 42 'à la gauche de le ligne, la valleur de la
cellule
'corespond au N° de la ligne (sur une autre
feuille)
'des valleurs trouvée parindex-equiv
Application.Goto Reference:="annee"
ActiveCell.Offset(li, -1).Select
'en fin de code, je souhaiterai avoir un
message box
'qui me propose de revenir à la dellule
active en début de code


If MsgBox("Voulez-vous revenir au tableau précédent ", 4) = 6 Then
Sheets("utilisation").Select
Range(x).Activate


End Sub
A+
Avatar
nicolas S2
Je reviens......... avec un autre problème.

Pour rendre la feuille active il faut que le MsgBox ne soit plus visible.

Je n'ai pas compris pour utiliser l'argument modal (ci c'est bien celui la
concerne le paramètre)




"nicolas S2" a écrit dans le message de
news: 46223c74$0$27205$
Merci pour ta réponse

J'ai fait ceci

Sub modif_travail_QuandClic()

Dim li, x
x = ActiveCell.Address
Selection.End(xlToLeft).Select

li = ActiveCell.Value + 42 'à la gauche de le ligne, la valleur de la
cellule
'corespond au N° de la ligne (sur une autre
feuille)
'des valleurs trouvée parindex-equiv
Application.Goto Reference:="annee"
ActiveCell.Offset(li, -1).Select
'en fin de code, je souhaiterai avoir un
message box
'qui me propose de revenir à la dellule
active en début de code


If MsgBox("Voulez-vous revenir au tableau précédent ", 4) = 6 Then
Sheets("utilisation").Select Range(x).Activate


End Sub
A+





Avatar
Jacky
RE...
'------------------
Sub modif_travail_QuandClic()
Dim li
x$ = ActiveCell.Address
y$ = ActiveSheet.Name
'--------
'--------
'--------
'-------
If MsgBox("Voulez-vous revenir au tableau précédent ", 4) = 6 Then
Sheets(y).Select
Range(x).Select
End If
End Sub
'-------------

--
Salutations
JJ



"nicolas S2" a écrit dans le message de
news: 46223c74$0$27205$
Merci pour ta réponse

J'ai fait ceci

Sub modif_travail_QuandClic()

Dim li, x
x = ActiveCell.Address
Selection.End(xlToLeft).Select

li = ActiveCell.Value + 42 'à la gauche de le ligne, la valleur de la
cellule
'corespond au N° de la ligne (sur une autre
feuille)
'des valleurs trouvée parindex-equiv
Application.Goto Reference:="annee"
ActiveCell.Offset(li, -1).Select
'en fin de code, je souhaiterai avoir un
message box
'qui me propose de revenir à la dellule
active en début de code


If MsgBox("Voulez-vous revenir au tableau précédent ", 4) = 6 Then
Sheets("utilisation").Select
Range(x).Activate


End Sub
A+





Avatar
nicolas S2
Bonsoir,

En fait après avoir cliqué sur le bouton de commande je souhaite aller à la
ligne sélectionnée de la base de donnée dans une autre feuille pour la
modifier ou non. Et après modif ou non en cliquant OK sur le msgbox, revenir
au tableau initial. (cela marche)

Le problème est que tant que le msgbox est visible, la feuille n'est pas
active et donc non modifiable. Ma question est donc : est il possible de
travailler sur une feuille pendant l'affichage d'un msgbox ?



Merci de ton appréciable aide.

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

RE...
'------------------
Sub modif_travail_QuandClic()
Dim li
x$ = ActiveCell.Address
y$ = ActiveSheet.Name
'--------
'--------
'--------
'-------
If MsgBox("Voulez-vous revenir au tableau précédent ", 4) = 6 Then
Sheets(y).Select
Range(x).Select
End If
End Sub
'-------------

--
Salutations
JJ



"nicolas S2" a écrit dans le message de
news: 46223c74$0$27205$
Merci pour ta réponse

J'ai fait ceci

Sub modif_travail_QuandClic()

Dim li, x
x = ActiveCell.Address
Selection.End(xlToLeft).Select

li = ActiveCell.Value + 42 'à la gauche de le ligne, la valleur de la
cellule
'corespond au N° de la ligne (sur une
autre feuille)
'des valleurs trouvée parindex-equiv
Application.Goto Reference:="annee"
ActiveCell.Offset(li, -1).Select
'en fin de code, je souhaiterai avoir un
message box
'qui me propose de revenir à la dellule
active en début de code


If MsgBox("Voulez-vous revenir au tableau précédent ", 4) = 6 Then
Sheets("utilisation").Select
Range(x).Activate


End Sub
A+









Avatar
Modeste
Bonsour® nicolas S2 avec ferveur ;o))) vous nous disiez :

Le problème est que tant que le msgbox est visible, la feuille n'est pas
active et donc non modifiable. Ma question est donc : est il possible de
travailler sur une feuille pendant l'affichage d'un msgbox ?


la réponse est NON !!!

par défaut : 0 vbApplicationModal
Boîte de dialogue modale.
L'utilisateur doit répondre au message affiché dans la zone de message avant de
pouvoir continuer de travailler dans l'application en cours.

on peut même faire pire ;o)))
4096 vbSystemModal
Modal système.
Toutes les applications sont interrompues jusqu'à ce que l'utilisateur réponde
au message affiché dans la zone de message


Le contournement est possible (au-dela de EXCEL 97) par un userform personnalisé
mimant la MsgBox (par exemple USF_Msgbx) et en indiquant que son affichage est
modal ou pas
USF_Msgbx .ShowModalúlse


--
--
@+
;o)))

Avatar
nicolas S2
Merci pour vos pertinentes et efficaces réponses dominicales.

Je vais chercher dans cette direction. Il va falloir que je me débrouille
pour que l'adresse d'origine soit connue dans le code de l'userform.



Merci et bonne soirée.



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

Bonsour® nicolas S2 avec ferveur ;o))) vous nous disiez :

Le problème est que tant que le msgbox est visible, la feuille n'est pas
active et donc non modifiable. Ma question est donc : est il possible de
travailler sur une feuille pendant l'affichage d'un msgbox ?


la réponse est NON !!!

par défaut : 0 vbApplicationModal
Boîte de dialogue modale.
L'utilisateur doit répondre au message affiché dans la zone de message
avant de pouvoir continuer de travailler dans l'application en cours.

on peut même faire pire ;o)))
4096 vbSystemModal
Modal système.
Toutes les applications sont interrompues jusqu'à ce que l'utilisateur
réponde au message affiché dans la zone de message


Le contournement est possible (au-dela de EXCEL 97) par un userform
personnalisé mimant la MsgBox (par exemple USF_Msgbx) et en indiquant que
son affichage est modal ou pas
USF_Msgbx .ShowModalúlse


--
--
@+
;o)))





Avatar
nicolas S2
Bonsoir modest,

sur EXCEL 2003, j'ai fait comme ceci:

Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function EnableWindow Lib "User32" _
(ByVal hWnd As Long, ByVal bEnable As Long) As Long




Private Sub UserForm_Activate()
EnableWindow FindWindowA("XLMAIN", Application.Caption), 1


End Sub

C'est ce que j'ai fait il y a quelques années après des conseils obtenus
ici.
Merci à vous tous
Bonne soirée, bonne nuit, bonne digestion, et bonne................

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

Bonsour® nicolas S2 avec ferveur ;o))) vous nous disiez :

Le problème est que tant que le msgbox est visible, la feuille n'est pas
active et donc non modifiable. Ma question est donc : est il possible de
travailler sur une feuille pendant l'affichage d'un msgbox ?


la réponse est NON !!!

par défaut : 0 vbApplicationModal
Boîte de dialogue modale.
L'utilisateur doit répondre au message affiché dans la zone de message
avant de pouvoir continuer de travailler dans l'application en cours.

on peut même faire pire ;o)))
4096 vbSystemModal
Modal système.
Toutes les applications sont interrompues jusqu'à ce que l'utilisateur
réponde au message affiché dans la zone de message


Le contournement est possible (au-dela de EXCEL 97) par un userform
personnalisé mimant la MsgBox (par exemple USF_Msgbx) et en indiquant que
son affichage est modal ou pas
USF_Msgbx .ShowModalúlse


--
--
@+
;o)))





Avatar
nicolas S2
Bonjour,

C'est bizarre, ce que j'ai fait marche bien dans un autre classeur mais pas
dans celui-la.

La feuille est «un peut» active, c'est-à-dire que je peut cliquer sur la
feuille, déplacer la cellule active avec le clavier ou la souri, mais pas
modifier le contenu d'une cellule.



Bonne journée

"nicolas S2" a écrit dans le message de
news: 462285ae$0$28135$
Bonsoir modest,

sur EXCEL 2003, j'ai fait comme ceci:

Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function EnableWindow Lib "User32" _
(ByVal hWnd As Long, ByVal bEnable As Long) As Long




Private Sub UserForm_Activate()
EnableWindow FindWindowA("XLMAIN", Application.Caption), 1


End Sub

C'est ce que j'ai fait il y a quelques années après des conseils obtenus
ici.
Merci à vous tous
Bonne soirée, bonne nuit, bonne digestion, et bonne................

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

Bonsour® nicolas S2 avec ferveur ;o))) vous nous disiez :

Le problème est que tant que le msgbox est visible, la feuille n'est pas
active et donc non modifiable. Ma question est donc : est il possible de
travailler sur une feuille pendant l'affichage d'un msgbox ?


la réponse est NON !!!

par défaut : 0 vbApplicationModal
Boîte de dialogue modale.
L'utilisateur doit répondre au message affiché dans la zone de message
avant de pouvoir continuer de travailler dans l'application en cours.

on peut même faire pire ;o)))
4096 vbSystemModal
Modal système.
Toutes les applications sont interrompues jusqu'à ce que l'utilisateur
réponde au message affiché dans la zone de message


Le contournement est possible (au-dela de EXCEL 97) par un userform
personnalisé mimant la MsgBox (par exemple USF_Msgbx) et en indiquant que
son affichage est modal ou pas
USF_Msgbx .ShowModalúlse


--
--
@+
;o)))