Regroupement de donnée, macro qui plante
Résolu
Julien
-
Julien -
Julien -
Bonjour à tous!
Je suis plutot un débutant sur excel et surtout sur les macros..
je me suis fait aidé ici meme pour la création de la macro "créer bulletin trimestre" que vous trouverez sur le fichier "1er trimestre".
voila le travail que nous avions fait:
http://www.cjoint.com/c/EKckeTePqZ3
Je ne l'ai pas touché depuis un petit moment et je ne comprend pas pourquoi d'un coup elle ne fonctionne plus... quelqu'un peut m'aider?
Je change à chaque fois le chemin d'accès correctement donc cela ne vient pas de la...
Pour rappel, la macro doit:
- regrouper les données des fichiers excel se trouvant dans le dossier matière
- prendre les données du 1er trimestre si le fichier s'appel 1er trimestre, 2ème si 2ème etc...
- copier coller chaque matière au bon endroit dans chaque onglet (français vers français)
- evidemment, copier coller les onglets respectifs (nicolas vers nicolas, etc...)
J'espère que c'est simple à comprendre...
Merci d'avance, j'espère qu'il n'y a pas tout à reprendre... :/
Julien
Je suis plutot un débutant sur excel et surtout sur les macros..
je me suis fait aidé ici meme pour la création de la macro "créer bulletin trimestre" que vous trouverez sur le fichier "1er trimestre".
voila le travail que nous avions fait:
http://www.cjoint.com/c/EKckeTePqZ3
Je ne l'ai pas touché depuis un petit moment et je ne comprend pas pourquoi d'un coup elle ne fonctionne plus... quelqu'un peut m'aider?
Je change à chaque fois le chemin d'accès correctement donc cela ne vient pas de la...
Pour rappel, la macro doit:
- regrouper les données des fichiers excel se trouvant dans le dossier matière
- prendre les données du 1er trimestre si le fichier s'appel 1er trimestre, 2ème si 2ème etc...
- copier coller chaque matière au bon endroit dans chaque onglet (français vers français)
- evidemment, copier coller les onglets respectifs (nicolas vers nicolas, etc...)
J'espère que c'est simple à comprendre...
Merci d'avance, j'espère qu'il n'y a pas tout à reprendre... :/
Julien
A voir également:
- Regroupement de donnée, macro qui plante
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Plante - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Mon telephone plante que faire - Guide
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...
Dites au moins a quelle ligne il y a erreur !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Parce que moi, y en a pas
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
lancer votre programme, quand il y a l'erreur, clic sur debugage et passez le curseur souris sur pour voir son contenu
Sheets(Trimestre)= l'indice n'appartient pas à la selection
Est ce que ce sont les infos que tu voulais?