Appel d'une fonction

gopo Messages postés 76 Statut Membre -  
gopo Messages postés 76 Statut Membre -
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 !

6 réponses

stephane_mc2004 Messages postés 807 Statut Membre 96
 
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
0
gopo Messages postés 76 Statut Membre 2
 
Merci, j'essaie ca !

Bonne journée A-
0
stephane_mc2004 Messages postés 807 Statut Membre 96
 
ok a--
0
gopo Messages postés 76 Statut Membre 2
 
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 ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stephane_mc2004 Messages postés 807 Statut Membre 96
 
attend je revien, le temps de nettoyer mes yeux et bien lire ton code
0
gopo Messages postés 76 Statut Membre 2
 
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é
0