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

comment réactiver automatiquement la feuille en cours après affichage d'un userform

13 réponses
Avatar
TILLOUX
Bonjour,

Voici la fin du code d'une procédure VBA que j'ai écrite:
..
..
Tableau.show vbmodeless
cells(3,2).select
end sub

Tableau.show vbmodeless ouvre le userform Tableau qui contient un listbox.Le
vbmodeless permet à la procédure de continuer son exécution donc de faire
le cells(3,2) .select

En fait le userform garde la min (bandeau allumé) alors que la feuille en
cours ne l'a plus. Par coséquent, je ne peux rien saisir en direct dans la
cells(3,2). Il faut aller cliquer dedans pour que la feuille redevienne
active.

Comment redonner la main à la feuille après le Tableau.show par une
instruction ?

J'ai essayé Activesheet.select, thisworkbook.activate mais rien ne marche.
Le userform reste actif.

Quelqu'un a-t-il une idée ?

Merci d'avance.

3 réponses

1 2
Avatar
michdenis
Tu ouvres un nouveau fil...
Tu expliques ta situation (environnement et classeur partagé)
et publie la procédure reçue que tu veux exécuter.

Perso. je viens de migrer sur un nouveau PC et je n'ai
plus les anciens messages...et ça ne me tente pas de
faire de la recherche pour les questions !




"TILLOUX" a écrit dans le message de groupe de discussion :

Effectivement, j'ai Excel 2003 d'où le non fonctionnement. Mais le problème
est réglé avec ta fonction Activer_application_excel.

Le 7.1, j'ai posté une question relative aux commentaires qui ne passent pas
avec un fichier partagé. Il se peut qu'avec Excel 2007 le problème soit
résolu.

Peux-tu regarder cette question et tester chez toi ?

Merci d'avance.

Tilloux.
"michdenis" a écrit dans le message de news:

| C'est curieux car ça marche dans une exécution pas à pas (F8) mais pas en
| exécution normale. Le Userform garde la main.

Cette procédure fonctionne sous Excel 2007,
mais ne donne pas le résultat escompté
sous Excel 2003, après test. Pour ce qui
est des autres versions d'excel je n'en sais rien !

Procédure testée :
Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule()
With ActiveSheet.Shapes.AddShape(msoShapeSun, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete: [A1].Select
End With
End Sub




"TILLOUX" a écrit dans le message de groupe de
discussion :
#
La fonction Activer_Application_Excel marche très bien.

En revanche, le coup de la forme qu'on affiche, puis qu'on sélectionne et
efface ne marche pas chez moi.
C'est curieux car ça marche dans une exécution pas à pas (F8) mais pas en
exécution normale. Le Userform garde la main.

Si quelqu'un a une idée, elle sera la bienvenue.

Merci à tous

Tilloux

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

Tu peux mettre presque tout sur la même ligne :

Cette sub à 2 lignes : mais là, cela ne fonctionne plus
Trouve un autre truc ! ;-))

Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule(): With
ActiveSheet.Shapes.AddShape(msoShapeSun, 10, 10, 10, 10): UserForm1.Show
0: .Select:
.Delete: [A1].Select: End With
End Sub




"garnote" a écrit dans le message de groupe
de
discussion :
eolM2K#
Et tant qu'à faire :

Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule()
With ActiveSheet.Shapes.AddShape(msoShapeSun, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete: [A1].Select
End With
End Sub

;-)


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

tu as bien raison, pourquoi faire long, lorsque l'on peut faire court

Sub Truc()
With ActiveSheet.Shapes
With .AddShape(msoShapeRectangle, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete
End With
End With
Range("B3").Select
End Sub

;-))



"garnote" a écrit dans le message de groupe
de discussion :

Et un peu de bricolage :

Sub Truc()
'...
'...
Set forme = ActiveSheet.Shapes.AddShape _
(msoShapeRectangle, 10, 10, 10, 10)
Tableau.Show vbModeless
forme.Select
forme.Delete
Cells(3, 2).Select
End Sub


Serge


"garnote" a écrit dans le message de news:
O0T%
Bonjour,

Voudrais bien savoir aussi ;-)

Viens de constater que si la feuille active contient une forme nommée
«rectangle», alors on obtient ce que tu veux avec cette macro :

Sub Piste()
Tableau.Show vbModeless
ActiveSheet.Shapes("rectangle").Select
Cells(3, 2).Select
End Sub

Il y a sûrement quelque chose de plus intelligent à faire !

Serge










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

Bonjour,

Voici la fin du code d'une procédure VBA que j'ai écrite:
..
..
Tableau.show vbmodeless
cells(3,2).select
end sub

Tableau.show vbmodeless ouvre le userform Tableau qui contient un
listbox.Le
vbmodeless
permet à la procédure de continuer
son exécution donc de faire le cells(3,2) .select

En fait le userform garde la min (bandeau allumé) alors que la feuille
en cours ne l'a
plus. Par coséquent, je ne peux
rien saisir en direct dans la cells(3,2). Il faut aller cliquer dedans
pour que la
feuille redevienne active.

Comment redonner la main à la feuille après le Tableau.show par une
instruction ?

J'ai essayé Activesheet.select, thisworkbook.activate mais rien ne
marche. Le
userform
reste actif.

Quelqu'un a-t-il une idée ?

Merci d'avance.
















Avatar
michdenis
Je précise toutefois ceci :

Si vous souhaitez inclure l'une des fonctionnalités suivantes:
cellules fusionnées, mises en forme conditionnelles, validation
des données, graphiques, images, objets (notamment les objets
dessinés et commentaires), liens hypertexte, scénarios, contours,
sous-totaux, tables de données, rapports de tableau croisé
dynamique, protection des classeurs et des feuilles de calcul, et
macros, Vous devez le faire avant de partager votre
fichier. Vous ne pouvez pas apporter de modifications
à ces fonctionnalités une fois que le classeur est partagé.

Partager peut être une option intéressante mais il faut accepter
les restrictions l'accompagnant. Évidemment, les mots de passe
sur un tel fichier peut devenir très limitatif ! Un petit coup d'oeil
dans l'aide d'excel sur ce qui est possible de faire avec de tel fichier
est tout désigné.





"michdenis" a écrit dans le message de groupe de discussion :

Tu ouvres un nouveau fil...
Tu expliques ta situation (environnement et classeur partagé)
et publie la procédure reçue que tu veux exécuter.

Perso. je viens de migrer sur un nouveau PC et je n'ai
plus les anciens messages...et ça ne me tente pas de
faire de la recherche pour les questions !




"TILLOUX" a écrit dans le message de groupe de discussion :

Effectivement, j'ai Excel 2003 d'où le non fonctionnement. Mais le problème
est réglé avec ta fonction Activer_application_excel.

Le 7.1, j'ai posté une question relative aux commentaires qui ne passent pas
avec un fichier partagé. Il se peut qu'avec Excel 2007 le problème soit
résolu.

Peux-tu regarder cette question et tester chez toi ?

Merci d'avance.

Tilloux.
"michdenis" a écrit dans le message de news:

| C'est curieux car ça marche dans une exécution pas à pas (F8) mais pas en
| exécution normale. Le Userform garde la main.

Cette procédure fonctionne sous Excel 2007,
mais ne donne pas le résultat escompté
sous Excel 2003, après test. Pour ce qui
est des autres versions d'excel je n'en sais rien !

Procédure testée :
Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule()
With ActiveSheet.Shapes.AddShape(msoShapeSun, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete: [A1].Select
End With
End Sub




"TILLOUX" a écrit dans le message de groupe de
discussion :
#
La fonction Activer_Application_Excel marche très bien.

En revanche, le coup de la forme qu'on affiche, puis qu'on sélectionne et
efface ne marche pas chez moi.
C'est curieux car ça marche dans une exécution pas à pas (F8) mais pas en
exécution normale. Le Userform garde la main.

Si quelqu'un a une idée, elle sera la bienvenue.

Merci à tous

Tilloux

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

Tu peux mettre presque tout sur la même ligne :

Cette sub à 2 lignes : mais là, cela ne fonctionne plus
Trouve un autre truc ! ;-))

Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule(): With
ActiveSheet.Shapes.AddShape(msoShapeSun, 10, 10, 10, 10): UserForm1.Show
0: .Select:
.Delete: [A1].Select: End With
End Sub




"garnote" a écrit dans le message de groupe
de
discussion :
eolM2K#
Et tant qu'à faire :

Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule()
With ActiveSheet.Shapes.AddShape(msoShapeSun, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete: [A1].Select
End With
End Sub

;-)


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

tu as bien raison, pourquoi faire long, lorsque l'on peut faire court

Sub Truc()
With ActiveSheet.Shapes
With .AddShape(msoShapeRectangle, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete
End With
End With
Range("B3").Select
End Sub

;-))



"garnote" a écrit dans le message de groupe
de discussion :

Et un peu de bricolage :

Sub Truc()
'...
'...
Set forme = ActiveSheet.Shapes.AddShape _
(msoShapeRectangle, 10, 10, 10, 10)
Tableau.Show vbModeless
forme.Select
forme.Delete
Cells(3, 2).Select
End Sub


Serge


"garnote" a écrit dans le message de news:
O0T%
Bonjour,

Voudrais bien savoir aussi ;-)

Viens de constater que si la feuille active contient une forme nommée
«rectangle», alors on obtient ce que tu veux avec cette macro :

Sub Piste()
Tableau.Show vbModeless
ActiveSheet.Shapes("rectangle").Select
Cells(3, 2).Select
End Sub

Il y a sûrement quelque chose de plus intelligent à faire !

Serge










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

Bonjour,

Voici la fin du code d'une procédure VBA que j'ai écrite:
..
..
Tableau.show vbmodeless
cells(3,2).select
end sub

Tableau.show vbmodeless ouvre le userform Tableau qui contient un
listbox.Le
vbmodeless
permet à la procédure de continuer
son exécution donc de faire le cells(3,2) .select

En fait le userform garde la min (bandeau allumé) alors que la feuille
en cours ne l'a
plus. Par coséquent, je ne peux
rien saisir en direct dans la cells(3,2). Il faut aller cliquer dedans
pour que la
feuille redevienne active.

Comment redonner la main à la feuille après le Tableau.show par une
instruction ?

J'ai essayé Activesheet.select, thisworkbook.activate mais rien ne
marche. Le
userform
reste actif.

Quelqu'un a-t-il une idée ?

Merci d'avance.
















Avatar
TILLOUX
Je savais qu'il y avait des limitations avec les fichiers partagés mais je
n'ai pas percuté sur les commentaires. Merci pour ta précision. Maintenant
tout est clair.

Tilloux.

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

Je précise toutefois ceci :

Si vous souhaitez inclure l'une des fonctionnalités suivantes:
cellules fusionnées, mises en forme conditionnelles, validation
des données, graphiques, images, objets (notamment les objets
dessinés et commentaires), liens hypertexte, scénarios, contours,
sous-totaux, tables de données, rapports de tableau croisé
dynamique, protection des classeurs et des feuilles de calcul, et
macros, Vous devez le faire avant de partager votre
fichier. Vous ne pouvez pas apporter de modifications
à ces fonctionnalités une fois que le classeur est partagé.

Partager peut être une option intéressante mais il faut accepter
les restrictions l'accompagnant. Évidemment, les mots de passe
sur un tel fichier peut devenir très limitatif ! Un petit coup d'oeil
dans l'aide d'excel sur ce qui est possible de faire avec de tel fichier
est tout désigné.





"michdenis" a écrit dans le message de groupe de
discussion :

Tu ouvres un nouveau fil...
Tu expliques ta situation (environnement et classeur partagé)
et publie la procédure reçue que tu veux exécuter.

Perso. je viens de migrer sur un nouveau PC et je n'ai
plus les anciens messages...et ça ne me tente pas de
faire de la recherche pour les questions !




"TILLOUX" a écrit dans le message de groupe de
discussion :

Effectivement, j'ai Excel 2003 d'où le non fonctionnement. Mais le
problème
est réglé avec ta fonction Activer_application_excel.

Le 7.1, j'ai posté une question relative aux commentaires qui ne passent
pas
avec un fichier partagé. Il se peut qu'avec Excel 2007 le problème soit
résolu.

Peux-tu regarder cette question et tester chez toi ?

Merci d'avance.

Tilloux.
"michdenis" a écrit dans le message de news:

| C'est curieux car ça marche dans une exécution pas à pas (F8) mais pas
en
| exécution normale. Le Userform garde la main.

Cette procédure fonctionne sous Excel 2007,
mais ne donne pas le résultat escompté
sous Excel 2003, après test. Pour ce qui
est des autres versions d'excel je n'en sais rien !

Procédure testée :
Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule()
With ActiveSheet.Shapes.AddShape(msoShapeSun, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete: [A1].Select
End With
End Sub




"TILLOUX" a écrit dans le message de groupe
de
discussion :
#
La fonction Activer_Application_Excel marche très bien.

En revanche, le coup de la forme qu'on affiche, puis qu'on sélectionne et
efface ne marche pas chez moi.
C'est curieux car ça marche dans une exécution pas à pas (F8) mais pas en
exécution normale. Le Userform garde la main.

Si quelqu'un a une idée, elle sera la bienvenue.

Merci à tous

Tilloux

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

Tu peux mettre presque tout sur la même ligne :

Cette sub à 2 lignes : mais là, cela ne fonctionne plus
Trouve un autre truc ! ;-))

Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule(): With
ActiveSheet.Shapes.AddShape(msoShapeSun, 10, 10, 10, 10): UserForm1.Show
0: .Select:
.Delete: [A1].Select: End With
End Sub




"garnote" a écrit dans le message de groupe
de
discussion :
eolM2K#
Et tant qu'à faire :

Sub Affice_UserForm_Et_Permet_Entrée_Directe_Dans_Une_Cellule()
With ActiveSheet.Shapes.AddShape(msoShapeSun, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete: [A1].Select
End With
End Sub

;-)


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

tu as bien raison, pourquoi faire long, lorsque l'on peut faire court

Sub Truc()
With ActiveSheet.Shapes
With .AddShape(msoShapeRectangle, 1, 1, 1, 1)
UserForm1.Show 0: .Select: .Delete
End With
End With
Range("B3").Select
End Sub

;-))



"garnote" a écrit dans le message de groupe
de discussion :

Et un peu de bricolage :

Sub Truc()
'...
'...
Set forme = ActiveSheet.Shapes.AddShape _
(msoShapeRectangle, 10, 10, 10, 10)
Tableau.Show vbModeless
forme.Select
forme.Delete
Cells(3, 2).Select
End Sub


Serge


"garnote" a écrit dans le message de news:
O0T%
Bonjour,

Voudrais bien savoir aussi ;-)

Viens de constater que si la feuille active contient une forme nommée
«rectangle», alors on obtient ce que tu veux avec cette macro :

Sub Piste()
Tableau.Show vbModeless
ActiveSheet.Shapes("rectangle").Select
Cells(3, 2).Select
End Sub

Il y a sûrement quelque chose de plus intelligent à faire !

Serge










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

Bonjour,

Voici la fin du code d'une procédure VBA que j'ai écrite:
..
..
Tableau.show vbmodeless
cells(3,2).select
end sub

Tableau.show vbmodeless ouvre le userform Tableau qui contient un
listbox.Le
vbmodeless
permet à la procédure de continuer
son exécution donc de faire le cells(3,2) .select

En fait le userform garde la min (bandeau allumé) alors que la
feuille
en cours ne l'a
plus. Par coséquent, je ne peux
rien saisir en direct dans la cells(3,2). Il faut aller cliquer
dedans
pour que la
feuille redevienne active.

Comment redonner la main à la feuille après le Tableau.show par une
instruction ?

J'ai essayé Activesheet.select, thisworkbook.activate mais rien ne
marche. Le
userform
reste actif.

Quelqu'un a-t-il une idée ?

Merci d'avance.



















1 2