Regroupement de donnée, macro qui plante
Résolu/Fermé
A voir également:
- Regroupement de donnée, macro qui plante
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Explorateur windows plante - Guide
1 réponse
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
2 nov. 2015 à 13:46
2 nov. 2015 à 13:46
Bonjour,
La premiere chose qui devrait vous interpeler c'est "trimestre 1" en nom d'onglet pour les fichiers matieres et 1er trimestre qui est une partie du nom de fichier appelant que vous utilisez pour recuperer les donnees des fichiers matieres
La premiere chose qui devrait vous interpeler c'est "trimestre 1" en nom d'onglet pour les fichiers matieres et 1er trimestre qui est une partie du nom de fichier appelant que vous utilisez pour recuperer les donnees des fichiers matieres
2 nov. 2015 à 14:01
en fait à la base "trimestre 1" s'appel aussi "1er trimestre"... je l'avais changé pour tester mais sans effet... le renommer "1er trimestre" ne change rien a priori...
Modifié par f894009 le 2/11/2015 à 15:13
Dites au moins a quelle ligne il y a erreur !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Parce que moi, y en a pas
2 nov. 2015 à 16:12
Moi lorsque je lance le debogage, il me met en jaune " With Sheets(Trimestre)"
C'est tout ce que je peux te dire... je ne comprend meme pas entièrement le code lol
Voila le code pour ceux qui veulent y jeter un oeil:
Option Explicit
Option Base 1
'variables globales
Dim T_eleves, Trimestre As String
'constantes
Const Chemin As String = "F:\sans note\T1\P1\matieres\" 'emplacement des classeurs matières" A ADAPTER
Sub Créer_bulletin_trimestre()
Dim Nbre_elev As Byte, Cptr As Byte
Dim Fich As String
Application.ScreenUpdating = False 'fige le défilement de l'écran:confort & rapidité
'----crée variable globale liste des élèves
With Sheets("liste")
Nbre_elev = .Columns("A").Find(what:="", after:=Range("A1")).Row - 3
ReDim T_eleves(Nbre_elev)
For Cptr = 1 To Nbre_elev
T_eleves(Cptr) = .Cells(Cptr + 2, "A")
Next
End With
'---mémorise le trimestre en cours
Trimestre = Split(ThisWorkbook.Name, ".")(0) 'suffixe du nom de fichier enlevé
' répertorie les matières enseignées
ChDir Chemin
Fich = Dir("*.*")
While Fich <> ""
apprecier Fich 'boucle sur toutes les matières
Fich = Dir
Wend
End Sub
Sub apprecier(Classeur)
Dim Nom As String, Cptr As Byte, Ligne As Byte
Dim T_competant, T_libelle
Workbooks.Open Filename:=Classeur
Nom = Split(Classeur, ".")(0) 'suffixe du nom de fichier enlevé
For Cptr = 1 To UBound(T_eleves)
'------collecte
With Sheets(Trimestre)
' mémorisation des appréciations
Ligne = .Columns("A").Find(T_eleves(Cptr), .Range("A1"), xlValues).Row 'ligne élève
T_competant = .Range(.Cells(Ligne, "B"), .Cells(Ligne, "E"))
End With
With Sheets("Compétence")
'mémorisation des thèmes d'évaluation
Ligne = .Columns("A").Find(what:=Trimestre, searchdirection:=xlPrevious).Row + 2
T_libelle = .Range(.Cells(Ligne, "A"), .Cells(Ligne + 2, "A"))
End With
'-------'restitution
With Workbooks(Trimestre & ".xlsm").Sheets(T_eleves(Cptr))
Ligne = .Columns("A").Find(what:=Nom, searchdirection:=xlPrevious).Row 'entete
.Cells(Ligne + 8, "B") = T_competant(1, 1) 'remarque
.Cells(Ligne + 2, "N") = T_competant(1, 2) 'niveau1
.Cells(Ligne + 4, "N") = T_competant(1, 3) 'niveau2
.Cells(Ligne + 6, "N") = T_competant(1, 4) 'niveau3
.Cells(Ligne + 2, "A") = T_libelle(1, 1) 'theme 1
.Cells(Ligne + 4, "A") = T_libelle(2, 1) 'theme 2
.Cells(Ligne + 6, "A") = T_libelle(3, 1) 'theme 3
End With
Next
'fermeture du classeur matière sans enregistrement
With ActiveWorkbook
.Saved = True
.Close
End With
End Sub
2 nov. 2015 à 16:16
lancer votre programme, quand il y a l'erreur, clic sur debugage et passez le curseur souris sur pour voir son contenu
2 nov. 2015 à 16:47
Sheets(Trimestre)= l'indice n'appartient pas à la selection
Est ce que ce sont les infos que tu voulais?