Appel d'une fonction

Bonjour,

Je voudrais savoir comment appeler une fonction/procedure dans une aute fonction/procedure :

Je veux apellez : Public Sub lanch() a la fin de Public Sub CommandButton1_Click()

merci !
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. c'est tout simple, apres Public Sub CommandButton1_Click(), tu ecris à la ligne lanch(), et si tu veux, tu fais End Sub

    Comme sa :

    Public Sub CommandButton1_Click()
    
    lanch()
    
    End sub
    1. Erreur de syntaxe ... =(

      Enfaite j'ai un problème j'arrive a appeler mes fonction avec call fonction.

      Mais j'ai un souci vraiement bizarre... je vous met mon code ( mon code est vraiment sale, j'ai rien trouvé pour raccourcir le code ... ) :

      Public Sub CommandButton1_Click()
      Dim Variable1 As String
      Dim Variable2 As String
      Dim Variable3 As String
      Dim Variable4 As String
      Dim Variable5 As String
      Dim Variable6 As String
      Dim Variable7 As String
      
      Dim i As Integer
      Dim j As Integer
      Dim h As Integer
      
      i = 9
             For i = 9 To 846 Step 27
               If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then
                      For j = 5 To 26 Step 1
                          
                       If Cells(i + 1, j) = "Janvier" Then
                           ActiveWorkbook.Sheets("Détail ACP").Select
                           
                           Variable1 = ActiveSheet.Cells(i + 3, j).Value
                           Variable2 = ActiveSheet.Cells(i + 8, j).Value
                           Variable3 = ActiveSheet.Cells(i + 12, j).Value
                           Variable4 = ActiveSheet.Cells(i + 14, j).Value
                           Variable5 = ActiveSheet.Cells(i + 16, j).Value
                           Variable6 = ActiveSheet.Cells(i + 19, j).Value
                           Variable7 = ActiveSheet.Cells(i + 20, j).Value
                           
                           Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                           
                           ActiveWorkbook.Sheets("Paris Keller").Cells(10, 7).Value = Variable1
                           ActiveWorkbook.Sheets("Paris Keller").Cells(11, 7).Value = Variable2
                           ActiveWorkbook.Sheets("Paris Keller").Cells(12, 7).Value = Variable3
                           ActiveWorkbook.Sheets("Paris Keller").Cells(14, 7).Value = Variable4
                           ActiveWorkbook.Sheets("Paris Keller").Cells(15, 7).Value = Variable5
                           ActiveWorkbook.Sheets("Paris Keller").Cells(16, 7).Value = Variable6
                           ActiveWorkbook.Sheets("Paris Keller").Cells(18, 7).Value = Variable7
                           
                           ActiveWorkbook.Sheets("Paris Keller").Select
                         
                         
                              Exit For
                              End If
                  Next
      
      Call argenteuil_92
      
      Sub argenteuil_92()
      Dim Variable1 As String
      Dim Variable2 As String
      Dim Variable3 As String
      Dim Variable4 As String
      Dim Variable5 As String
      Dim Variable6 As String
      Dim Variable7 As String
      
      Dim i As Integer
      Dim j As Integer
      Dim h As Integer
                   For i = 9 To 6000 Step 27
               If Cells(i, 2) = "950820 - ARGENTEUIL 92 ACP" Then
                      For j = 5 To 846 Step 1
                          
                       If Cells(i + 1, j) = "Janvier" Then
                           'ActiveWorkbook.Sheets("Détail ACP").Select
                           
                           Variable1 = ActiveSheet.Cells(i + 3, j).Value
                           Variable2 = ActiveSheet.Cells(i + 8, j).Value
                           Variable3 = ActiveSheet.Cells(i + 12, j).Value
                           Variable4 = ActiveSheet.Cells(i + 14, j).Value
                           Variable5 = ActiveSheet.Cells(i + 16, j).Value
                           Variable6 = ActiveSheet.Cells(i + 19, j).Value
                           Variable7 = ActiveSheet.Cells(i + 20, j).Value
                           
                           ' Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                           
                           ActiveWorkbook.Sheets("ARGENTEUIL 92").Cells(10, 7).Value = Variable1
                           ActiveWorkbook.Sheets("ARGENTEUIL 92").Cells(11, 7).Value = Variable2
                           ActiveWorkbook.Sheets("ARGENTEUIL 92").Cells(12, 7).Value = Variable3
                           ActiveWorkbook.Sheets("ARGENTEUIL 92").Cells(14, 7).Value = Variable4
                           ActiveWorkbook.Sheets("ARGENTEUIL 92").Cells(15, 7).Value = Variable5
                           ActiveWorkbook.Sheets("ARGENTEUIL 92").Cells(16, 7).Value = Variable6
                           ActiveWorkbook.Sheets("ARGENTEUIL 92").Cells(18, 7).Value = Variable7
                           
                           ActiveWorkbook.Sheets("ARGENTEUIL 92").Select
                           Exit For
                      End If
                  Next
                  Exit For
         End If
      Next
      
      End Sub
      


      Ma fonction copie les valeur souhaité selon i, et les copie dans un autre classeur, ce qui se passe ( ce qui ne devrait pas ce passé ) c'est que tout ce passe bien dans ma boucle aucune erreur ( F8 : ok ) mais ca ne copie rien ! ca efface mes celulle de mon nouveau classeur et ca ne colle rien de s'ki a été copié avant ... pourquoi ??
      1. attend je revien, le temps de nettoyer mes yeux et bien lire ton code
        1. je remet le code en propre , je vais suprimé ski es répétitif...

          Prend en compte ce code ci :
          Public Sub CommandButton1_Click()
          Dim Variable1 As String
          Dim Variable2 As String
          
          
          Dim i As Integer
          Dim j As Integer
          Dim h As Integer
          
          i = 9
                 For i = 9 To 846 Step 27
                   If Cells(i, 2) = "753220 - PARIS KELLER ACP" Then
                          For j = 5 To 26 Step 1
                              
                           If Cells(i + 1, j) = "Janvier" Then
                               ActiveWorkbook.Sheets("Détail ACP").Select
                               
                               Variable1 = ActiveSheet.Cells(i + 3, j).Value
                               Variable2 = ActiveSheet.Cells(i + 8, j).Value
                               
                               
                               Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                          
                               ActiveWorkbook.Sheets("Paris Keller").Cells(10, 7).Value = Variable1
                               ActiveWorkbook.Sheets("Paris Keller").Cells(11, 7).Value = Variable2
                                
                               ActiveWorkbook.Sheets("Paris Keller").Select
                             
                                    Exit For
                                  End If
                                Next
                          Exit For
                        End If
                    Next
             
           For i = 9 To 846 Step 27
                   If Cells(i, 2) = "750670 - PARIS BERCY EXPO ACP" Then
                          For j = 5 To 26 Step 1
                              
                           If Cells(i + 1, j) = "Janvier" Then
                             ActiveWorkbook.Sheets("Détail ACP").Select
                               
                                    Variable1 = ActiveSheet.Cells(i + 3, j).Value
                                    Variable2 = ActiveSheet.Cells(i + 8, j).Value
                               
                      Workbooks.Open ActiveWorkbook.Path & "\TBM ACP.xls"
                               
                                    ActiveWorkbook.Sheets("PARIS BERCY").Cells(10, 7).Value = Variable1
                                    ActiveWorkbook.Sheets("PARIS BERCY").Cells(11, 7).Value = Variable2
                               
                                    ActiveWorkbook.Sheets("PARIS BERCY").Select
                                  Exit For
                                End If
                           Next
                      Exit For
             End If
          Next
          
          End Sub


          Tout ce passe bien mais, les ligne qui sont soulignée serve 1) a ouvrir la page ou sera copié les celulles et 2) a ouvrir le classeur de destination.

          Si je laisse l'ouverture de feuille & du nouveau classeur sur la deuxieme procedure, ca bug, si je l'enleve ca copie rien ca ne fait que de supprimé les celulle du classeur TBM ACP .. donc je pense qu'il faudrai que j'y mette la feuille souhaité et le classeur de destination sans que ca fasse bugué