OVH Cloud OVH Cloud

qqun peut-il m'aider URGENT

14 réponses
Avatar
logan
Bonjour,

Lorsque je veux cr=E9er une macro en cliquant sur le bouton=20
formulaire d'excel, le message suivant s'inscrit : Espace=20
pile insuffisant (erreur 28), et je ne peux plus cr=E9er de=20
macros.

Comment puis-je corriger ce probl=E8me ou supprimer les=20
piles d'appels, car je pense qu'il s'agit d'encha=EEnements=20
en boucle?

Merci de bien vouloir m'aider.

ML

10 réponses

1 2
Avatar
Misange
Bonjour Logan,
Tu as déjà posé de nombreuses fois cette même question depuis hier. Tu
n'es surement pas très habitué au fonctionnement de ce forum et ce
serait une bonne idée que tu fasses un petit tour sur cette page :
http://www.excelabo.net/mpfe/connection.htm pour y lire les usages et
surtout voir comment se connecter autrement qu'avec l'interface web
(dite CDO) qui t'incite à commencer une nouvelle discussion sur le même
sujet 25 fois de suite.
Pour en venir à ta question, FXM t'a mis sur la voie et tu sembles dire
qu'effectivement tu as un pb de boucle dans ta macro. Mais si tu ne nous
copies pas le code de ta macro (pas de fichier joint surtout !) tu ne
risques pas de trouver de l'aide :-)

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

logan wrote:
Bonjour,

Lorsque je veux créer une macro en cliquant sur le bouton
formulaire d'excel, le message suivant s'inscrit : Espace
pile insuffisant (erreur 28), et je ne peux plus créer de
macros.

Comment puis-je corriger ce problème ou supprimer les
piles d'appels, car je pense qu'il s'agit d'enchaînements
en boucle?

Merci de bien vouloir m'aider.

ML



Avatar
Effectivement je n'ai pas l'habitude du fonctionnement
de ce forum. Mille excuses.

Lorsque j'essaie d'ouvrir une macro le code est le
suivant:
Sub Bouton1_QuandClic()
'
' Bouton1_QuandClic Macro
' Macro enregistrée le 06.03.2004
'

'
Range("E10").Select
Application.Run "Classeur1!Bouton1_QuandClic"
End Sub

Merci de votre aide.

-----Message d'origine-----
Bonjour Logan,
Tu as déjà posé de nombreuses fois cette même question
depuis hier. Tu

n'es surement pas très habitué au fonctionnement de ce
forum et ce

serait une bonne idée que tu fasses un petit tour sur
cette page :

http://www.excelabo.net/mpfe/connection.htm pour y lire
les usages et

surtout voir comment se connecter autrement qu'avec
l'interface web

(dite CDO) qui t'incite à commencer une nouvelle
discussion sur le même

sujet 25 fois de suite.
Pour en venir à ta question, FXM t'a mis sur la voie et
tu sembles dire

qu'effectivement tu as un pb de boucle dans ta macro.
Mais si tu ne nous

copies pas le code de ta macro (pas de fichier joint
surtout !) tu ne

risques pas de trouver de l'aide :-)

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

logan wrote:
Bonjour,

Lorsque je veux créer une macro en cliquant sur le
bouton


Espace
pile insuffisant (erreur 28), et je ne peux plus créer
de


macros.

Comment puis-je corriger ce problème ou supprimer les
piles d'appels, car je pense qu'il s'agit
d'enchaînements


en boucle?

Merci de bien vouloir m'aider.

ML



.




Avatar
FxM
Bonsoir Logan,

Oui, oui, si ton classeur se nomme classeur1.xls, c'est effectivement un
boucllage dans les règles de l'art (JPS : pas de 'lard') :o)

Sub Bouton1_QuandClic()
Range("E10").Select
Application.Run "Classeur1!Bouton1_QuandClic"
End Sub


Quand tu cliques sur le bouton1, la cellule E10 est sélectionnée puis la
macro qui est associée au bouton est lancée ... donc la cellule E10 est
sélectionnée et la macro qui est associée au bouton est appelée ... donc
E10 est sélectionnée et tu as compris le principe ...
Il arrive un moment où Excel dit que la place qu'il a réservée pour
stocker des valeurs est dépassée. C'est la fameuse erreur 28.

A priori, tu ne devrais pas devoir appeler de l'extérieur une macro
_quandclic. C'est uniquement le clic sur le bouton qui agit. Une version
plus commune passe par la séparation de la macro en deux.

La première contient les actions qui doivent être faites :
Sub jebosse()
range("E10").select
' que faire d'autre ?
end sub

La seconde gère le moment où l'on fait les actions :
sub bouton1_quandclic()
call jebosse()
end sub

Si un autre bouton (bouton3) devait lancer les mêmes actions, il faut le
diriger vers jebosse() et non vers bouton1_quandclic(). Donc :
sub bouton3_quandclic()
call jebosse()
end sub

Si tu nous détailles un peu ce que tu cherches (surtout le pourquoi
éventuel du clic redemandé), le groupe va bien trouver une soluce digne
de ce nom.

@+
FxM

Avatar
Bonjour,
Je souhaiterais créer des macros avec le bouton de la
barre d'outil formulaire. Exemples : A partir de la feuil
1, créer des boutons permettant d'ouvrir la feuil 2, 3,4,
soit pratiquement une trentaine de feuille du classeur.

Merci déjà pour votre aide.
-----Message d'origine-----
Bonsoir Logan,

Oui, oui, si ton classeur se nomme classeur1.xls, c'est
effectivement un

boucllage dans les règles de l'art (JPS : pas
de 'lard') :o)


Sub Bouton1_QuandClic()
Range("E10").Select
Application.Run "Classeur1!Bouton1_QuandClic"
End Sub


Quand tu cliques sur le bouton1, la cellule E10 est
sélectionnée puis la

macro qui est associée au bouton est lancée ... donc la
cellule E10 est

sélectionnée et la macro qui est associée au bouton est
appelée ... donc

E10 est sélectionnée et tu as compris le principe ...
Il arrive un moment où Excel dit que la place qu'il a
réservée pour

stocker des valeurs est dépassée. C'est la fameuse
erreur 28.


A priori, tu ne devrais pas devoir appeler de
l'extérieur une macro

_quandclic. C'est uniquement le clic sur le bouton qui
agit. Une version

plus commune passe par la séparation de la macro en deux.

La première contient les actions qui doivent être
faites :

Sub jebosse()
range("E10").select
' que faire d'autre ?
end sub

La seconde gère le moment où l'on fait les actions :
sub bouton1_quandclic()
call jebosse()
end sub

Si un autre bouton (bouton3) devait lancer les mêmes
actions, il faut le

diriger vers jebosse() et non vers bouton1_quandclic().
Donc :

sub bouton3_quandclic()
call jebosse()
end sub

Si tu nous détailles un peu ce que tu cherches (surtout
le pourquoi

éventuel du clic redemandé), le groupe va bien trouver
une soluce digne

de ce nom.

@+
FxM

.




Avatar
sabatier
je te conseille, anonymous, de te servir de l'enregisteur de macros ; tu
chosiras soit dans ce classeur soir dans classeur de macros personnelles
avant de commencer l'enregistrement qui va te mettre une mini barre
d'outils sur ton écran ; quand tu as fini ton enregistrement (càd la
sélection de ta/tes feuille(s), tu vas ensuite chercher ton/tes
bouton(s)de la BO formulaires et une fois positionné(s) sur ta feuille,
tu cliques droit pour faire apparaître la boîte Affecter une macro et
là, tu choisis celle que tu avais enregistréé et à laquelle (j'ai oublié
de te dire plus haut) tu auras donné un nom (un différent pour chacune
des macros, oeuf corse)
HTH
jps

a écrit:
Bonjour,
Je souhaiterais créer des macros avec le bouton de la
barre d'outil formulaire. Exemples : A partir de la feuil
1, créer des boutons permettant d'ouvrir la feuil 2, 3,4,
soit pratiquement une trentaine de feuille du classeur.

Merci déjà pour votre aide.

-----Message d'origine-----
Bonsoir Logan,

Oui, oui, si ton classeur se nomme classeur1.xls, c'est


effectivement un

boucllage dans les règles de l'art (JPS : pas


de 'lard') :o)

Sub Bouton1_QuandClic()
Range("E10").Select
Application.Run "Classeur1!Bouton1_QuandClic"
End Sub


Quand tu cliques sur le bouton1, la cellule E10 est


sélectionnée puis la

macro qui est associée au bouton est lancée ... donc la


cellule E10 est

sélectionnée et la macro qui est associée au bouton est


appelée ... donc

E10 est sélectionnée et tu as compris le principe ...
Il arrive un moment où Excel dit que la place qu'il a


réservée pour

stocker des valeurs est dépassée. C'est la fameuse


erreur 28.

A priori, tu ne devrais pas devoir appeler de


l'extérieur une macro

_quandclic. C'est uniquement le clic sur le bouton qui


agit. Une version

plus commune passe par la séparation de la macro en deux.

La première contient les actions qui doivent être


faites :

Sub jebosse()
range("E10").select
' que faire d'autre ?
end sub

La seconde gère le moment où l'on fait les actions :
sub bouton1_quandclic()
call jebosse()
end sub

Si un autre bouton (bouton3) devait lancer les mêmes


actions, il faut le

diriger vers jebosse() et non vers bouton1_quandclic().


Donc :

sub bouton3_quandclic()
call jebosse()
end sub

Si tu nous détailles un peu ce que tu cherches (surtout


le pourquoi

éventuel du clic redemandé), le groupe va bien trouver


une soluce digne

de ce nom.

@+
FxM

.







Avatar
FxM
Bonjour,

Je vais faire appel au(x) roi(s) de la BO ... Help !

Si Logan a 30 feuilles, ca va devenir dingue de faire 30 boutons et 30
fois les mêmes codes (surtout s'il faut corriger). En piochant sur le
site de Frédéric, il y a possibilité de créer des BO. Mon souci est de
faire passer un argument dans le .onaction.

Lorsque je fais dérouler la macro "bjr" en manuel, la feuille se cache
ou se montre et le message 'Called' apparait une fois. Lorsque je
cliquouille via les boutons, la feuille ne bouge pas mais le message
apparaît deux fois. De plus les lignes stop sont ignorées.

Toutes les idées sont les bienvenues.

@+
FxM



Const nomBO = "MaBO"

Sub Auto_Open()
On Error Resume Next
Application.CommandBars(nomBO).Delete
On Error GoTo 0
Set cbr = CommandBars.Add(nomBO)
cbr.Visible = True

For a = 1 To 3
Set ctl = cbr.Controls.Add(msoControlButton)
ctl.FaceId = 2520
ctl.Caption = "Feuil" & a
kk = "bjr(" & Chr(34) & ctl.Caption & Chr(34) & ")"
ctl.OnAction = kk
Next a
End Sub

Sub Bjr(Optional inp)
Stop
If IsMissing(inp) Then inp = ActiveSheet.Name
Application.ScreenUpdating = True
Sheets(inp).Visible = Not (Sheets(inp).Visible)
Stop
MsgBox "Called!"
End Sub

Sub enleve()
On Error Resume Next
Application.CommandBars(nomBO).Delete
For Each sht In Worksheets
sht.Visible = True
Next sht
End Sub

Sub Auto_Close()
Call enleve
End Sub
Avatar
Frédéric Sigonneau
Bonjour,

La syntaxe de ces appels avec paramètre est la suivante :

.OnAction = "'MacroCommune """ & Argument & """'"

Avec ton code, ça peut faire :

'============== Const nomBO = "MaBO"

Sub Auto_Open()
On Error Resume Next
Application.CommandBars(nomBO).Delete
On Error GoTo 0
Set cbr = CommandBars.Add(nomBO)
cbr.Visible = True

For a = 1 To 3
Set ctl = cbr.Controls.Add(msoControlButton)
ctl.FaceId = 2520
ctl.Caption = "Feuil" & a
ctl.OnAction = "'Bjr """ & ctl.Caption & """'"
Next a
End Sub

Sub Bjr(Optional inp)
If IsMissing(inp) Then inp = ActiveSheet.Name
Application.ScreenUpdating = True
Sheets(inp).Visible = Not (Sheets(inp).Visible)
MsgBox "Called!"
End Sub

Sub enleve()
On Error Resume Next
Application.CommandBars(nomBO).Delete
For Each sht In Worksheets
sht.Visible = True
Next sht
End Sub

Sub Auto_Close()
Call enleve
End Sub
'==============
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

FxM a écrit:
Bonjour,

Je vais faire appel au(x) roi(s) de la BO ... Help !

Si Logan a 30 feuilles, ca va devenir dingue de faire 30 boutons et 30
fois les mêmes codes (surtout s'il faut corriger). En piochant sur le
site de Frédéric, il y a possibilité de créer des BO. Mon souci est de
faire passer un argument dans le .onaction.

Lorsque je fais dérouler la macro "bjr" en manuel, la feuille se cache
ou se montre et le message 'Called' apparait une fois. Lorsque je
cliquouille via les boutons, la feuille ne bouge pas mais le message
apparaît deux fois. De plus les lignes stop sont ignorées.

Toutes les idées sont les bienvenues.

@+
FxM



Const nomBO = "MaBO"

Sub Auto_Open()
On Error Resume Next
Application.CommandBars(nomBO).Delete
On Error GoTo 0
Set cbr = CommandBars.Add(nomBO)
cbr.Visible = True

For a = 1 To 3
Set ctl = cbr.Controls.Add(msoControlButton)
ctl.FaceId = 2520
ctl.Caption = "Feuil" & a
kk = "bjr(" & Chr(34) & ctl.Caption & Chr(34) & ")"
ctl.OnAction = kk
Next a
End Sub

Sub Bjr(Optional inp)
Stop
If IsMissing(inp) Then inp = ActiveSheet.Name
Application.ScreenUpdating = True
Sheets(inp).Visible = Not (Sheets(inp).Visible)
Stop
MsgBox "Called!"
End Sub

Sub enleve()
On Error Resume Next
Application.CommandBars(nomBO).Delete
For Each sht In Worksheets
sht.Visible = True
Next sht
End Sub

Sub Auto_Close()
Call enleve
End Sub


Avatar
FxM
Bonsoir Frédéric,

Frédéric Sigonneau wrote:
La syntaxe de ces appels avec paramètre est la suivante :
..OnAction = "'MacroCommune """ & Argument & """'"

Avec ton code, ça peut faire :


Effectivement, ca peut ... mais ça veut pas :o(
Plus de message "called". Si je supprime une feuille, il n'y a pas non
plus de message d'erreur donc, à priori, la macro ne serait même pas
appelée. Pas plus de succès si j'essaie de réintroduire l'argument sous
forme de bjr(..).

Allez, on ne va pas se faire bouillir le neurone sur ce truc.
Il n'y aura bien une autre méthode.

@+
FxM

Avatar
Frédéric Sigonneau
Re,

Curieux ! Chez moi j'ai bien le message... Je t'envoie un petit fichier exemple
(7 Ko zippé).

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

FxM a écrit:
Bonsoir Frédéric,

Frédéric Sigonneau wrote:

La syntaxe de ces appels avec paramètre est la suivante :
..OnAction = "'MacroCommune """ & Argument & """'"

Avec ton code, ça peut faire :



Effectivement, ca peut ... mais ça veut pas :o(
Plus de message "called". Si je supprime une feuille, il n'y a pas non
plus de message d'erreur donc, à priori, la macro ne serait même pas
appelée. Pas plus de succès si j'essaie de réintroduire l'argument sous
forme de bjr(..).

Allez, on ne va pas se faire bouillir le neurone sur ce truc.
Il n'y aura bien une autre méthode.

@+
FxM



Avatar
FxM
Re-2 ;o)

Reçu, testé, détails en BAL.
... je n'ai aucun message sous Win98SE FR - Excel 2000 FR SP3.

@+
FxM


Frédéric Sigonneau wrote:
Re,

Curieux ! Chez moi j'ai bien le message... Je t'envoie un petit fichier
exemple (7 Ko zippé).

FS


1 2