[excel-vba-userform] boucle et fonctions

Résolu
Bonjour à tous!

ça fait un petit bout de temps que je ne suis pas passé ici alors je profite d'une difficulté pour revenir! :)

J'ai un classeur excel avec pleins de feuilles nommées 00,01,02 ...

J'ai un userform avec pleins de boutons nommés type_00,type_01,type02 ...

J'aimerais dans une boucle vba déclarer mes actions pour chaque boutonsdu style :

for i = 0 to 9
for j = 0 to 9
private function type_ij_Click()
resultat.titre.caption=type_ij.caption
'et d'autres truc correspondant à mes feuilles
end sub
next j
next i


une idée??? :)

Merci d'avance

--
"La culture c'est comme la confiture : moins on en a plus on l'étale"

3 réponses

  1. Merci à tous pour vos réponses!!! lol

    J'ai trouvé ce que je voulais!

    Pour ceux que ça intéresse :

    Sub Test()
    For Each O In ActiveSheet.OLEObjects
    If O.progID = "Forms.CommandButton.1" Then
    Code = "Sub type_" & O.Name & "_Click()" & vbCrLf 
    Code = Code & "Sheets("O.Name").select" & vbCrLf 
    Code = Code & "End Sub"
    End If
    Next
    End Sub

    1
    1. bonjour à tous,
      je suis actuellement en train de réaliser une macro en VBA qui ne marche pas.
      Ma fonction doit me perttre de :
      - trouver sur une plage de données une cellule appelée "Designation"
      - une fois la cellule trouvée, je garde la colonne correspondante pour la comparer à una autre colonne d'une feuille appartenant à un autre classeur. si un intitulé n'est pas présent dans la colonne de "leaks index" alors je le rajoute à la fin de la colonne

      voici ma macro :

      Option Explicit
      Sub Designation_Systeme_Manquant()

      Dim Classeur1 As Workbook
      Dim Classeur2 As Workbook

      Set Classeur1 = Workbooks("leaks index.xls")
      Set Classeur2 = Workbooks("Calcul_compare+_Girassol.xls")

      Dim Feuille As Worksheet
      Dim F1 As Worksheet

      'Dim Plage As Range
      'Dim Cellule As Range
      'Dim Posit As Long

      Set F1 = Classeur1.Worksheets("all_type")

      Dim lig As Integer
      Dim col As Integer
      Dim colonneDesign As Integer
      Dim ligneDesign As Integer
      Dim lig1 As Integer

      For Each Feuille In Classeur2.Worksheets

      'Set Plage = Sheets("Feuille").Range(Cells(1, 1), Cells(10, 10))
      'For Each Cellule In Plage

      For lig = 1 To 10
      For col = 1 To 10

      'détection de la colonne contenant les intitulés des systèmes
      If Cells(lig, col).Value = "Designation" Then
      colonneDesign = col
      ligneDesign = lig + 2
      End If

      Next col
      Next lig

      ' détection des systèmes manquant dans leaks index
      While ligneDesign <= 200

      For lig1 = 7 To 163

      If Feuille.Cells(ligneDesign, colonneDesign).Value = F1.Cells(lig1, 2).Value Then
      ligneDesign = ligneDesign + 1
      End If

      If lig1 = 163 Then

      lig1 = 164
      While F1.Cells(lig1, 2).Value <> ""
      lig1 = lig1 + 1
      Wend

      If F1.Cells(lig1, 2).Value = "" Then
      F1.Cells(lig1, 2).Value = Feuille.Cells(ligneDesign, colonneDesign).Value
      End If

      End If

      Next lig1

      Wend

      Next Feuille

      End Sub

      quelles sont mes erreurs ?
      merci d'avance
      0