Exécuter des macros en "sous-marin" ?

Le
Tatane
Bonjour,

Je voudrais "figer" ma feuille mais j'ai un petit souci d'affichage quand
j'exécute des macros à l'ouverture du fichier: Les pages bougent dans tous
les sens.

J'ai beau insérer des "Application.ScreenUpdating = False" et
"Application.ScreenUpdating = True" çà et là mais rien n'y fait.
Je me demande même si c'est bien cette fonction qui convient

Je joins mon fichier (au cas où) http://cjoint.com/?hnp6BgsiBX

Par avance, merci si vous pouviez m'aider.

Tatane.
--
www.club-assun-billard.fr
http://8pool.over-blog.com/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JP25
Le #4898761
Bonjour,
En examinant un petit peu ton code, je pense que tu devarais déja éviter les
"Select"
Exemple au lieu de faire
Range("Z20:AA20").Select
Selection.clearcontents
Tu fais simplement
Range("Z20:AA20").ClearContents
Ce qui évite ton curseur de se ballader en permanence
Tu peux aussi éviter de sélectionner une feuille pour écrire des données,
Sheets(x).activate
Range("x,y").select ...
Tu peux simplement trouver les positions ou écrire puis
Sheets(x).cells(x,y) = rrrr
C'est aussi efficace et ça allège ton code

--
Cordialement
JP25


"Tatane"
Bonjour,

Je voudrais "figer" ma feuille mais j'ai un petit souci d'affichage quand
j'exécute des macros à l'ouverture du fichier: Les pages bougent dans tous
les sens.

J'ai beau insérer des "Application.ScreenUpdating = False" et
"Application.ScreenUpdating = True" çà et là mais rien n'y fait.
Je me demande même si c'est bien cette fonction qui convient...

Je joins mon fichier (au cas où...) http://cjoint.com/?hnp6BgsiBX

Par avance, merci si vous pouviez m'aider.

Tatane.
--
www.club-assun-billard.fr
http://8pool.over-blog.com/


Tatane
Le #4871451
Merci "JP25", je vais essayer ce que tu me porposes et je te tiens au courant
lundi.

Bon WE.

--
http://www.club-assun-billard.fr/
http://8pool.over-blog.com/



Bonjour,
En examinant un petit peu ton code, je pense que tu devarais déja éviter les
"Select"
Exemple au lieu de faire
Range("Z20:AA20").Select
Selection.clearcontents
Tu fais simplement
Range("Z20:AA20").ClearContents
Ce qui évite ton curseur de se ballader en permanence
Tu peux aussi éviter de sélectionner une feuille pour écrire des données,
Sheets(x).activate
Range("x,y").select ...
Tu peux simplement trouver les positions ou écrire puis
Sheets(x).cells(x,y) = rrrr
C'est aussi efficace et ça allège ton code

--
Cordialement
JP25


"Tatane"
Bonjour,

Je voudrais "figer" ma feuille mais j'ai un petit souci d'affichage quand
j'exécute des macros à l'ouverture du fichier: Les pages bougent dans tous
les sens.

J'ai beau insérer des "Application.ScreenUpdating = False" et
"Application.ScreenUpdating = True" çà et là mais rien n'y fait.
Je me demande même si c'est bien cette fonction qui convient...

Je joins mon fichier (au cas où...) http://cjoint.com/?hnp6BgsiBX

Par avance, merci si vous pouviez m'aider.

Tatane.
--
www.club-assun-billard.fr
http://8pool.over-blog.com/







Tatane
Le #4869531
Re... Bon WE ?

Cela fonctionne mais j'ai toujours le souci avec ce code:
-------------
Sub Plage_Clients()
Feuil3.Activate
Application.ScreenUpdating = False
Range("A2").Select
Dim MASELECTION As Range
Dim a As Variant
While IsEmpty(ActiveCell) = False
ActiveCell.Offset(1, 0).Activate
Wend
a = ActiveCell.Offset(-1).Address
Set MASELECTION = Range("A2" & ":" & a)
MASELECTION.Select
MASELECTION.Name = "CLIENTS"
Range("A1").Select
Application.ScreenUpdating = True
End Sub
-------------
Si j'applique ta solution, cela ne fonctionne pas pour le code ci-dessus, il
garde la page affichée (feuil1 au lieu de feuil3) pour faire la sélection et
donc définit une plage fausse.

J'ai essayé la commande "With" sans succès. Aurais-tu une solution pour ce
cas ?

Par avance, merci.

--
http://www.club-assun-billard.fr/
http://8pool.over-blog.com/



Merci "JP25", je vais essayer ce que tu me porposes et je te tiens au courant
lundi.

Bon WE.

--
http://www.club-assun-billard.fr/
http://8pool.over-blog.com/



Bonjour,
En examinant un petit peu ton code, je pense que tu devarais déja éviter les
"Select"
Exemple au lieu de faire
Range("Z20:AA20").Select
Selection.clearcontents
Tu fais simplement
Range("Z20:AA20").ClearContents
Ce qui évite ton curseur de se ballader en permanence
Tu peux aussi éviter de sélectionner une feuille pour écrire des données,
Sheets(x).activate
Range("x,y").select ...
Tu peux simplement trouver les positions ou écrire puis
Sheets(x).cells(x,y) = rrrr
C'est aussi efficace et ça allège ton code

--
Cordialement
JP25


"Tatane"
Bonjour,

Je voudrais "figer" ma feuille mais j'ai un petit souci d'affichage quand
j'exécute des macros à l'ouverture du fichier: Les pages bougent dans tous
les sens.

J'ai beau insérer des "Application.ScreenUpdating = False" et
"Application.ScreenUpdating = True" çà et là mais rien n'y fait.
Je me demande même si c'est bien cette fonction qui convient...

Je joins mon fichier (au cas où...) http://cjoint.com/?hnp6BgsiBX

Par avance, merci si vous pouviez m'aider.

Tatane.
--
www.club-assun-billard.fr
http://8pool.over-blog.com/









Francois L
Le #4869511
Re... Bon WE ?

Cela fonctionne mais j'ai toujours le souci avec ce code:



Bonjour,

La macro du Thisworbook :
'----------------------------------
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Call Plage_Clients
Call Plage_Fournisseurs
Call Plage_Prestations
Call RAZ_Devis
Feuil1.Activate
Application.ScreenUpdating = True
End Sub
'-----------------------------------

Supprimer les
Application.ScreenUpdating
des macros appelées par la macro précédente.

--
François L

Tatane
Le #4869461
Bonjour "Francois L" et merci car cela fonctionne bien.

Donc, si je comprend bien : Les macros lancées au démarrage font partie de
la procédure "Workbook open" et ne sont pas gérées indépendemment du fait que
ma procédure reviens terminer le "Workbook open" après avoir traité les
macros.

Bonne journée.
--
http://www.club-assun-billard.fr/
http://8pool.over-blog.com/



Re... Bon WE ?

Cela fonctionne mais j'ai toujours le souci avec ce code:



Bonjour,

La macro du Thisworbook :
'----------------------------------
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Call Plage_Clients
Call Plage_Fournisseurs
Call Plage_Prestations
Call RAZ_Devis
Feuil1.Activate
Application.ScreenUpdating = True
End Sub
'-----------------------------------

Supprimer les
Application.ScreenUpdating
des macros appelées par la macro précédente.

--
François L




Francois L
Le #4869441
Bonjour "Francois L" et merci car cela fonctionne bien.

Donc, si je comprend bien : Les macros lancées au démarrage font partie de
la procédure "Workbook open" et ne sont pas gérées indépendemment du fait que
ma procédure reviens terminer le "Workbook open" après avoir traité les
macros.

Bonne journée.


Re,

La procédure à l'ouverture appelle les autres macros. Si elles
contiennent un application.screenpdating = true (qui s'applique à
l'application comme son nom l'indique), le rafraichissement est rétabli
jusqu'au prochain application.screenupdating = false d'où ce que tu as
constaté dans ta procédure initiale.

--
François L

Tatane
Le #4869421
Merci de la précision. Bonne journée.
--
http://www.club-assun-billard.fr/
http://8pool.over-blog.com/



Bonjour "Francois L" et merci car cela fonctionne bien.

Donc, si je comprend bien : Les macros lancées au démarrage font partie de
la procédure "Workbook open" et ne sont pas gérées indépendemment du fait que
ma procédure reviens terminer le "Workbook open" après avoir traité les
macros.

Bonne journée.


Re,

La procédure à l'ouverture appelle les autres macros. Si elles
contiennent un application.screenpdating = true (qui s'applique à
l'application comme son nom l'indique), le rafraichissement est rétabli
jusqu'au prochain application.screenupdating = false d'où ce que tu as
constaté dans ta procédure initiale.

--
François L




Publicité
Poster une réponse
Anonyme