XL 2016 Erreur macro

  • Initiateur de la discussion Initiateur de la discussion matmac
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

matmac

XLDnaute Occasionnel
Bonjour,

J'utilise un fichier dans lequel plusieurs macro sont exécutables.
J'ai une erreur depuis peu lorsque j'exécute la macro "copie liste élève" disponible sur l'onglet "accueil".
En ouvrant la boite de débogage, l'erreur est surlignée, mais la réparer dépasse mes compétences !!!
Si quelqu'un peut m'aider.
Le mot de passe pour exécuter cette macro est "escalade".

Merci par avance
Mat
 

Pièces jointes

Bonjour matmac, vgendron,

dans ton Module3, à partir de la ligne 75, tu as la sub copie_liste_élèves_Cliquer() qui crée deux erreurs de compilation successives lors de la phase de compilation de ton projet VBA, car des variables n'ont pas été déclarées ! d'où l'intérêt de Option Explicit pour les détecter ! modifie ainsi le début de ta sub, et la compilation va passer ; par contre, par manque de temps, je n'ai pas vérifié si l'exécution est correcte.​

VB:
Sub copie_liste_élèves_Cliquer()
'
' copie_liste_élèves_Cliquer Macro
'
 
Dim rng_Liste_élève As Range, rng_Accueil As Range
Dim rng_feuil1 As Range, rng_project As Range
Dim i As Integer
 
Set rng_Liste_élève = Worksheets("Liste_élève").Range("A1:A40")

soan
 
Re,

@soan, j'ai essayé, mais ça ne fonctionne pas.

@vgendron, effectivement, en enlevant le contenu de la ligne 40 dans la liste, cela focntionne. Je l'avais laissé un faux nom, car j'ai ajouté l'onglet tuto, et j'ai donc décalé les numéro de feuille dans la macro "copie fiche élève initialisation". Je voulais vérifier que la feuille élève 40 soit bien renseigné. Je ne pensait pas que le fait qu'il y ait des lignes vides soient un problème, je ne vois pas pourquoi d'ailleurs ! Dans l'idéal, il ne faudrait pas que ça en soit un, car quand un élève change de classe ou déménage, jusqu'à maintenant je le laissait dans la liste. Mais comme je vais partager ce fichier à des collègues, il ne faudrait pas qu'ils enlèvent un élève en laissant une case vide...
 
essai avec ce code
VB:
Public Sub CopieListeEleve()
If InputBox("Saisissez le mot de passe en minuscule") <> "escalade" Then
    MsgBox ("Mot de passe erroné")
    Exit Sub
End If
    
' On déprotège toutes les feuilles
Déprotéger

Const I_LIG_DEB As Integer = 5
Const I_LIG_MAX As Integer = 23

Dim oShList As Worksheet
Dim oShAcc As Worksheet
Dim iDerLig As Integer
Dim iLig As Integer

Dim iEcrCol As Integer
Dim iEcrLig As Integer
Dim TabEleves() As Variant

Set oShList = Worksheets("Liste_élève")
Set oShAcc = Worksheets("Accueil")

'RAZ
oShAcc.Range("B" & I_LIG_DEB & ":H" & I_LIG_MAX).ClearContents

'écriture
iEcrCol = 2
iEcrLig = I_LIG_DEB

iDerLig = oShList.Range("A" & Rows.Count).End(xlUp).Row
TabEleves = Range("Tab_Eleves").Value

Application.ScreenUpdating = False

For iLig = LBound(TabEleves, 1) To UBound(TabEleves, 1)
    If TabEleves(iLig, 1) <> "" Then
        If iEcrLig > I_LIG_MAX Then
            iEcrCol = iEcrCol + 2
            iEcrLig = I_LIG_DEB
        End If

        'lien hypertexte
        oShAcc.Hyperlinks.Add _
                Anchor:=oShAcc.Cells(iEcrLig, iEcrCol), _
                Address:="", _
                SubAddress:="élève" & iLig & "!A2", _
                TextToDisplay:=TabEleves(iLig, 1)
        Worksheets("élève" & iLig).Unprotect
        Worksheets("élève" & iLig).Range("A2").Value = TabEleves(iLig, 1)
        Worksheets("élève" & iLig).Protect
        'V0.2-fin
        iEcrLig = iEcrLig + 2
    End If
Next iLig

Application.ScreenUpdating = True


Set oShList = Nothing
Set oShAcc = Nothing

' On protège toutes les feuilles
Protéger

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
188
Réponses
2
Affichages
986
Réponses
4
Affichages
1 K
Retour