Code VBA je plante
Fermé
nireau
Messages postés
3
Date d'inscription
dimanche 21 février 2021
Statut
Membre
Dernière intervention
21 février 2021
-
21 févr. 2021 à 05:46
M-12 Messages postés 1332 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 18 février 2025 - 21 févr. 2021 à 10:35
M-12 Messages postés 1332 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 18 février 2025 - 21 févr. 2021 à 10:35
A voir également:
- Code VBA je plante
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
5 réponses
M-12
Messages postés
1332
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
18 février 2025
285
21 févr. 2021 à 07:09
21 févr. 2021 à 07:09
Bonjour,
Sans être sur, à tester
Sans être sur, à tester
Sub Synthese() 'Ouvrir fichiers concernés, déclarations des variables Dim i As Integer Dim j As Integer Dim k As Long Dim n As Integer Dim Chemin As String Dim Statut As String Dim Nfchier As String Dim Srce As Worksheet Dim ShtCible As Worksheet Dim Datasrce As Workbook Dim Cible As Workbook Dim ShtDatasrce As Worksheet Set Srce = Worksheets("Str.Cts") For i = 1 To 47 Chemin = Srce.Cells(i + 3, 3).Value Statut = Srce.Cells(i + 3, 4).Value Nfchier = Srce.Cells(i + 3, 2).Value 'Test pour savoir quel fichier ouvrir If Chemin <> "" And Statut = "" Then '<code basic> Application.Workbooks.Open Chemin 'Le classeur actif devient celui qui vient d'être ouvert 'il faut compter le nombre feuilles et pour chacune alimenter la ligne 'correspondante dans la feuille compil du classeur récap Set Cible = ThisWorkbook Set ShtCible = Cible.Worksheets("Compil") n = Datasrce.Sheets.Count k = ShtCible.Cells(Rows.Count, "C").End(xlUp).Row + 1 For j = 1 To n With ShtCible Set ShtDatasrce = Datasrce.Worksheets(j) ShtCible.Cells(k, "C") = ShtDatasrce.Name ShtCible.Cells(k, "D") = ShtDatasrce.Cells(2, "A") ShtCible.Cells(k, "F") = ShtDatasrce.Cells(4, "C") ShtCible.Cells(k, "J") = ShtDatasrce.Cells(2, "C") ShtCible.Cells(k, "K") = ShtDatasrce.Cells(2, "E") ShtCible.Cells(k, "L") = ShtDatasrce.Cells(2, "G") ShtCible.Cells(k, "N") = ShtDatasrce.Cells(2, "I") ShtCible.Cells(k, "O") = ShtDatasrce.Cells(5, "I") ShtCible.Cells(k, "P") = ShtDatasrce.Cells(6, "I") ShtCible.Cells(k, "Q") = ShtDatasrce.Cells(7, "I") ShtCible.Cells(k, "R") = ShtDatasrce.Cells(8, "I") End With k = k + 1 Set ShtDatasrce = Nothing Next j ThisWorkbook.Close End If Next i End Sub
nireau
Messages postés
3
Date d'inscription
dimanche 21 février 2021
Statut
Membre
Dernière intervention
21 février 2021
21 févr. 2021 à 10:23
21 févr. 2021 à 10:23
bonjour !
super sympa de si bonne heure.
le code plante à la ligne n°34:

super sympa de si bonne heure.
le code plante à la ligne n°34:
n = Datasrce.Sheets.Count
M-12
Messages postés
1332
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
18 février 2025
285
Modifié le 21 févr. 2021 à 10:27
Modifié le 21 févr. 2021 à 10:27
Re,
Normal, Datasrce n'est pas initialisé et sans classeur modèle ??
Normal, Datasrce n'est pas initialisé et sans classeur modèle ??
nireau
Messages postés
3
Date d'inscription
dimanche 21 février 2021
Statut
Membre
Dernière intervention
21 février 2021
21 févr. 2021 à 10:27
21 févr. 2021 à 10:27
qu'est ce que "initialiser" comment pourrais je procéder pour résoudre cela ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
M-12
Messages postés
1332
Date d'inscription
lundi 22 septembre 2008
Statut
Membre
Dernière intervention
18 février 2025
285
21 févr. 2021 à 10:35
21 févr. 2021 à 10:35
Re,
Ah ben là, oui des lacunes
dans ce bout de code
Set Cible --> tu initialise le classeur avec la variable cible
n= --> tu initialise la variable n
idem pour k
for j=1 --> tu initialise j à 1 jusqu'à la variable n
comme ta variable Datasrce n'est pas initialise, le programme BUG
Ah ben là, oui des lacunes
dans ce bout de code
Set Cible = ThisWorkbook Set ShtCible = Cible.Worksheets("Compil") n = Datasrce.Sheets.Count k = ShtCible.Cells(Rows.Count, "C").End(xlUp).Row + 1 For j = 1 To n
Set Cible --> tu initialise le classeur avec la variable cible
n= --> tu initialise la variable n
idem pour k
for j=1 --> tu initialise j à 1 jusqu'à la variable n
comme ta variable Datasrce n'est pas initialise, le programme BUG