Macro "désactivé"
Salut à tous,
J'ai un petit souci sur un ficher. Je vous explique :
Je l'utilise pour la création de N° de plan, il fonctionne avec diverse macro. Hier soir je l'ai enregistré, et en le lançant ce matin, toutes les macros semblent désactiver. J'ai été voir dans les options, elles sont activés. J'ai ensuite pensé au code qui aurait disparu, mais tout est toujours en place.. Quand je clique sur ce qui était le bouton de commande, il a l'air d'être devenu une image.
Si jamais je remet des boutons, plus moyen d'éditer ses propriétés.. Bref, je sèche un peu..
Si quelqu'un à une idée..
Bonjour,
Il faut essayer de travailler de façon cohérente en VBA...
Les macros "classiques" se mettent dans un module Standard. Tu réserves les modules de feuilles pour les procédures d'évènements...
Sub Feuille()
Dim ff, f$, i%
ff = Split("FON LAC LAF DIS LAQ")
f = Right(Application.Caller, 3)
On Error GoTo Fin
i = WorksheetFunction.Match(f, ff, 0)
Worksheets("FAMILLE " & i).Activate
Fin:
End Sub
Sub Retour()
Worksheets("SELECT").Activate
End Sub
Sub NouveauType()
Caractéristique_bouton.Show
End SubCes macros sont donc à placer dans un module Standard !
La macro Feuille est affectée à tous les boutons de SELECT, sauf NOUVEAU TYPE auquel est affectée la macro NouveauType.
La macro Retour est affectée à tous les boutons Retour des autres feuilles.
Pour les autres boutons des feuilles (Nouveau N°) on ne sait pas trop ce qu'ils doivent lancer... ?
Quant au code du Userform, je ne m'y suis pas penché mais cela ne me paraît pas très brilllant au coup d'oeil !
Cordialement.
Bonjour,
Les macros sont surement à retravailler, je commence la dedans, et c'est pas brillant de mon côté.. Je me dépatouille avec le peu que j'ai compris et que j'arrive à faire fonctionner..
Le fait n'est pas que les macros sont fausse, mais qu'elles fonctionnaient hier encore, et depuis ce matin plus rien ne réagi.
Re,
Lis plutôt ce que j'ai écrit... Suis ces recommandations !! Et étudie soigneusement le chapitre portée des variables et des procédures dans un cours VBA...
Cordialement.
Pour le "fun" :
Code du Userform :
Private Sub annuler_Click()
Unload Me
End Sub
Private Sub valider_Click()
Dim lo, f%, n%
lo = Split("FON LAC LAF DIS LAQ")
For f = 0 To 4
With Range(lo(f))
n = .Rows.Count + 1
.Cells(n, 2) = TextBox1.Value
.Cells(n, 3) = TextBox2.Value
End With
Tri f + 1
Next f
Unload Me
End SubA mettre en module Standard :
Sub Tri(f As Integer)
Dim lo, pl, k%
lo = Split("FON LAC LAF DIS LAQ")
pl = Array("[1 TYPE]", "[TYPE]", "[DETAIL]", "[N°]")
With Worksheets("FAMILLE " & f).ListObjects(lo(f - 1)).Sort
With .SortFields
.Clear
For k = 0 To 3
.Add Range(lo(f - 1) & pl(k)), xlSortOnValues, xlAscending, , _
IIf(k <> 4, xlSortNormal, xlSortTextAsNumbers)
Next k
End With
.Header = xlYes
.MatchCase = False
.Apply
End With
End Sub