• Initiateur de la discussion Initiateur de la discussion totor2027
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

totor2027

Guest
Bonjour le forum,


j'ai un problème pour lancer un script depuis un bouton ...

Je m'explique : sur la feuille 3 d'un classeur, j'ai mis un bouton qui doit lancer un script placé sur la feuille 4.

Pour info il ait impossible de déplacer ce script sur une autre feuille ou dans un module (c’est certainement possible mais pas évident).

Si quelqu'un à une soluce je suis preneur.

merci beaucoup

guillaume
 
Bonjour Guillaume, bonjour le forum,

Pas sûr d'avoir bien compris ton problème... Mais pourquoi ne copies-tu pas le script de la Feuil4 et tu le colles dans la Feuil3... ou mieux dans un module comme ça tu pourras y acceder de n'importe où avec Call.
 
Bonjour le fil, bonjour le forum,

Alors je te propose un truc d'enfer... Fait un petit effort, evoie-nous quelquechose. Le fichier zippé, le code de ta macro, la photo de ta belle-mère, le collier anti-puce de ton chien... Mais aide-nous un peu toi aussi!!!!
 
ok voila le code problématique.

je présise qu'il fonctionne très bien depuis un appel fait de la feuille 4

Sub Voir_Stat()



'************ sup ligne ********************
For lin = Worksheets('CALCUL').UsedRange.Rows.Count + Worksheets('CALCUL').UsedRange.Row To 6 Step -1
'MsgBox lin
If Cells(lin, 1) = '' Then Rows(lin).Delete Shift:=xlUp
Application.ScreenUpdating = False
Next lin
'*******************************************

'**********duplique la mise en forme et formule de la derniere ligne************

'*********** compte NB ligne chrono **************
For Compte = Worksheets('CHRONO').UsedRange.Rows.Count + Worksheets('CHRONO').UsedRange.Row To 7 Step -1
'*************************************************
test2 = Worksheets('CALCUL').UsedRange.Rows.Count
Cells(test2, 2).Select
'MsgBox Compte
ActiveCell.Range('A2').EntireRow.Insert

Range(Cells(test2, 1), Cells(test2, 6)).Copy _
Range(Cells(test2 + 1, 1), Cells(test2 + 1, 6)) 'copie les cellules A à F
Application.ScreenUpdating = False

Next Compte

test3 = test2 + 1
'************** écrase les formules *************
Worksheets('CALCUL').Range('A6:F' & test3).Value = Worksheets('CALCUL').Range('A6:F' & test3).Value
'***********
Cells.Range('A6:F' & test3).Select


'****************** vire les cellules vides *****************
For toto = Worksheets('CALCUL').UsedRange.Rows.Count + Worksheets('CALCUL').UsedRange.Row To 6 Step -1
If Cells(toto, 2) = '' Then Cells(toto, 2).Delete Shift:=xlUp
If Cells(toto, 3) = '' Then Cells(toto, 3).Delete Shift:=xlUp
If Cells(toto, 4) = '' Then Cells(toto, 4).Delete Shift:=xlUp
If Cells(toto, 5) = '' Then Cells(toto, 5).Delete Shift:=xlUp
If Cells(toto, 6) = '' Then Cells(toto, 6).Delete Shift:=xlUp

Application.ScreenUpdating = False
Next toto

Cells(test2, 2).Select

'******************* cacule les moyennes ************
'MsgBox test3
Range('B2').Value = Application.WorksheetFunction.Average(Range('B6:B' & test3))
Range('C2').Value = Application.WorksheetFunction.Average(Range('C6:C' & test3))
Range('D2').Value = Application.WorksheetFunction.Average(Range('D6😀' & test3))
Range('E2').Value = Application.WorksheetFunction.Average(Range('E6:E' & test3))
Range('F2').Value = Application.WorksheetFunction.Average(Range('F6:F' & test3))


End Sub
 
pour info c'est la derniere partie du code qui pose problème pour le cacule de la moyenne


Range('B2').Value = Application.WorksheetFunction.Average(Range('B6:B' & test3))

notament pour le WorksheetFunction, je n'arrive pas a passer un truc du genre ....Worksheets('CALCUL').Function....

si tu as une idée 🙂
 
Pour compléter

il y a aussi une petouille avant dans l'instruction

Cells.Range('A6:F' & test3).Select

qui fait réference à ActiveSheet enfin je pence quqnd je lance le script depuis la feuille 3, ca écrase les lignes de cette feuille et non de la 4.

bref je pence qu'il est plus simple de pouvoir activer le code depuis une autre feuille, enfin si c'est possible.

a +

guillaume
 
Bonjour Guillaume, bonjour le forum,

Bon, on est bien d'accord... la macro agit sur l'onglet CALCUL (même si elle utilise une donnée de l'onglet CHRONO). Donc normalement, que tu la lances de n'importe qu'elle feuille que n'agira QUE sur l'onglet CALCUL.

Il faudrait que tu me dises les noms des feuille 3 et 4 mais je penses que tu n'identifies pas l'onglet. Si tu la lances d'un onglet différent il faudrait peut-être à un moment donné dire : Sheets('CALCUL').Activate.
 
Robert écrit:
Bonjour Guillaume, bonjour le forum,

Bon, on est bien d'accord... la macro agit sur l'onglet CALCUL (même si elle utilise une donnée de l'onglet CHRONO). Donc normalement, que tu la lances de n'importe qu'elle feuille que n'agira QUE sur l'onglet CALCUL.

Il faudrait que tu me dises les noms des feuille 3 et 4 mais je penses que tu n'identifies pas l'onglet. Si tu la lances d'un onglet différent il faudrait peut-être à un moment donné dire : Sheets('CALCUL').Activate.

Bon j'ai trouver une solution grace à toi mais elle me satisfait moyen mais ça marche 😛

sur ma feuille 3 je lance :
Sub Actu_stat_Click()
Sheets('CALCUL').Activate 'feuille 4

Sheets('STAT').Activate 'feuille 3
End Sub

et je met le code de la feuille 4 dans une fonction
Private Sub Worksheet_Activate() ...

Comme ça mon bouton sur la feuille 3 active la feuille 4 qui lance automatiquement le code, puis revient à la feuille 3.


le seul PB c'est que pendant le calcul on voix la feuille 4, c'est pas tiptop mais ça marche (j'aurai bien voulu à terme masquer complétement cette onglet).

donc, merci Robert B)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2019 User Form
Réponses
9
Affichages
526
Réponses
32
Affichages
1 K
Réponses
3
Affichages
884
Réponses
2
Affichages
328
Retour