Inserer une 2eme macro sur une feuille excell

Résolu
wervol Messages postés 683 Statut Membre -  
wervol Messages postés 683 Statut Membre -
Bonjour,
j'ai une macro avec une procédure trop longue je voudrais donc en mettre une 2ème
voila une ligne de mon code pour exemple

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

On Error Resume Next

If Not Application.Intersect(Target, Range("B4")) Is Nothing Then Range("B48") = Range("B48") + 1
End Sub

je sais qu'il y a la fonction call pour appeler la 2ème macro mais je ne sais pas comment procéder mettre quoi a la fin de mon code sur la 1ère macro, ainsi que le début de la 2ème macro
sa doit être simple mais la je cale
merci pour votre aide
cordialement



--

aider dans la mesure des mes connaissances ne me demandez pas l'impossible je saurais pas le faire

4 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Les 2 macros doivent commencer et finir par
    Sub nom_macro()
    ' le code
    ...
    end sub

    Le end sub se met automatiquement, colle ton code au milieu

    eric
    0
  2. wervol Messages postés 683 Statut Membre 133
     
    bonjour eriiic
    pour appeler la 2eme macro il n'y a pas de fonction call.? j'ai essayer ce que tu m'as dis mais sa ne fonctionne pas
    --

    aider dans la mesure des mes connaissances ne me demandez pas l'impossible je saurais pas le faire
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Re,

      pour appeler la 2eme macro il n'y a pas de fonction call.?

      Si, mais comme tu as dit dans la question que tu le savais je n'en ai pas parlé...

      Ca doit ressembler à ça :
      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Not Application.Intersect(Target, Range("B4")) Is Nothing Then Range("B48") = Range("B48") + 1
      'le code qui reste ici
      ...
      call macro1
      ' encore du code ici si tu veux
      ...
      call macro2
      ' encore du code ici si tu veux
      ...
      End Sub

      sub macro1()
      'le code 1
      end sub

      sub macro2()
      'le code 2
      end sub

      Je t'ai enlevé le On Error Resume Next qui n'est pas du tout une bonne idée. Il vaut mieux être alerté des erreurs que de se retrouver avec des bugs indécelables.
      On ne le met que quand on sait pertinament que la ligne suivante génère des erreurs et qu'on en tient compte dans le code.
      Et juste en dessous de cette ligne on rétabli le traitement des erreurs avec On error goto 0

      eric
      0
  3. Info
     
    Bonjour,

    S'il y a des paramètres à la macro, il faut distinguer 2 méthodes :

    Option Explicit 
    
    Sub Macro1(ByVal Nom As String) 
        MsgBox Nom 
    End Sub 
    ' 
    
    Sub Macro2(ByVal Prenom As String) 
        MsgBox Prenom 
    End Sub 
    ' 
    
    Sub Macro() 
    
        Call Macro1("Bonjour") 
        Call Macro2("Bon matin") 
         
        ' Ou encore 
         
        Macro1 "Bonne après-midi" 
        Macro2 "Bonne soirée" 
         
    End Sub 
    ' 
    


    Cdt

    Info
    0
  4. wervol Messages postés 683 Statut Membre 133
     
    merci eric et info pour vos réponses
    sa va m'aider a finir le travail que je suis en train de faire
    cordialement
    0