Hiérarchisation des macros
Résolu
padbollevrai
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
padbollevrai Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
padbollevrai Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Déclaration existante dans la portée en cours
- Macros word - Guide
- My macros - Télécharger - Organisation
- Ez macros - Télécharger - Divers Utilitaires
- Hierarchisation Table des matières problème !! - Forum Word
- Le classeur macros personnelles dans le dossier de démarrage doit être ouvert ✓ - Forum VB / VBA
4 réponses
Bonjour,
Il te faut donc une fonction (ou une procédure) avec en paramètre, la colonne. Comme ceci :
Tu peux même faire une boucle dans ton main avec un select case etc...
Genre :
Il te faut donc une fonction (ou une procédure) avec en paramètre, la colonne. Comme ceci :
Sub Main() If [A3] = "count" Then Call Filling_Count(1) If [A3] = "time" Then Call Filling_Time(1) If [B3] = "count" Then Call Filling_Count(2) If [B3] = "time" Then Call Filling_Time(2) 'etc... End Sub Sub Filling_Count(NumCol As Integer) With columns(NumCol) 'blabla End With End Sub Sub Filling_Time(NumCol As Integer) With columns(NumCol) 'blabla End With End Sub
Tu peux même faire une boucle dans ton main avec un select case etc...
Genre :
For Col = 1 To 12 Select Case Cells(3, Col) Case "count" Call Filling_Count(Col) Case "min" Call Filling_Min(Col) Case "max" Call Filling_Max(Col) Case "Time" Call Filling_Time(Col) Case Else MsgBox "Erreur Fatale" End Select Next
Wow ! Excellent, merci beaucoup !
Maintenant, dans mes sous-macro, comment remplacer la lettre le la colonne par la variable "Col" ?
Exemple, si j'ai un Range("B" & K).Value, il suffit de mettre Range("Col" & K) ?
Merci
Maintenant, dans mes sous-macro, comment remplacer la lettre le la colonne par la variable "Col" ?
Exemple, si j'ai un Range("B" & K).Value, il suffit de mettre Range("Col" & K) ?
Merci
Merci beaucoup.
Dernière chose: Tu as mis
Or, à la place de "Erreur fatale" en cas de "case else", j'aimerais qu'il passe à la valeur suivante. J'ai donc mis un Next à la place de MsgBox "Erreur Fatale", mais cela fait un doublon de Next... Et il me fait une erreur à la compilation.
Suffit-il de ne rien mettre ou y a-t-il quelque chose de particulier ?
Autre souci: Dans une de mes sous-macro, une erreur de compilation stipule "Déclaration existante dans la portée en cours" sur "Dim Col as Integer".
Je ne déclare qu'une fois cette variable, je ne comprends pas cette erreur, d'autant que les autres sous-macros situées plus haut dans le code n'ont pas renvoyé cette erreur.
Merci
Dernière chose: Tu as mis
For Col = 1 To 12 Select Case Cells(3, Col) Case "count" Call Filling_Count(Col) Case "min" Call Filling_Min(Col) Case "max" Call Filling_Max(Col) Case "Time" Call Filling_Time(Col) Case Else MsgBox "Erreur Fatale" End Select Next
Or, à la place de "Erreur fatale" en cas de "case else", j'aimerais qu'il passe à la valeur suivante. J'ai donc mis un Next à la place de MsgBox "Erreur Fatale", mais cela fait un doublon de Next... Et il me fait une erreur à la compilation.
Suffit-il de ne rien mettre ou y a-t-il quelque chose de particulier ?
Autre souci: Dans une de mes sous-macro, une erreur de compilation stipule "Déclaration existante dans la portée en cours" sur "Dim Col as Integer".
Je ne déclare qu'une fois cette variable, je ne comprends pas cette erreur, d'autant que les autres sous-macros situées plus haut dans le code n'ont pas renvoyé cette erreur.
Merci