Gros soucis avec les boucles!

Résolu
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013 - Modifié par NHenry le 7/12/2013 à 18:58
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013 - 10 déc. 2013 à 19:31
Bonjour,
j'ai une macro qui fonctionne bien avec uniquement "Do While....Loop".
Entre ce "Do" et ce "Loop" il faudrait que je mette des boucles "If" (ou autres) pour écrire dans différentes "Feuil" en fonction de la valeur d'une cellule "B13" appartenant à un "DossierFactures".
Mais dès que je met une deuxième boucle "If" j'ai un message d'erreur "boucle sans DO". Et là je suis perdu!!
(je joins la macro, ce sera peut-être plus clair).
SVP aidez-moi! Merci.

Sub Test1()
ChDir "M:\MARC\Facture-Gab\Fact-Synth\"
DossierFactures = Dir("M:\MARC\Facture-Gab\Fact-Synth\*.xlsx")
'Début boucle trim1
  Dim j As Integer
  j = 12
  
Do While Len(DossierFactures) > 0

'ouverture dossier facture
    Workbooks.Open "M:\MARC\Facture-Gab\Fact-Synth\" & DossierFactures
 If Range("B13") < 4 = True Then
'traitement data
 Dim plage As Range, desti As Range, i As Integer
 Set desti = Workbooks("Synth-Test.xlsm").Worksheets("Feuil1").Range("B" & j)
 Set plage = Range("G6, H33,I34, J35")
 For i = 1 To plage.Areas.Count
 desti.Offset(0, i - 1).Value = plage.Areas(i).Value
 Next
 Workbooks("Synth-Test.xlsm").Worksheets("Feuil1").Range("A" & j) = DossierFactures

'fermeture classeur xlsx
 Workbooks(DossierFactures).Saved = True
 Workbooks(DossierFactures).Close

 DossierFactures = Dir
 j = j + 1
Else:

'boucle trim2
  If Range("B13") < 7 = True Then
'traitement data
  Set desti = Workbooks("Synth-Test.xlsm").Worksheets("Feuil2").Range("B" & j)
  Set plage = Range("G6, H33,I34, J35")
  For i = 1 To plage.Areas.Count
  desti.Offset(0, i - 1).Value = plage.Areas(i).Value
  Next
  Workbooks("Synth-Test.xlsm").Worksheets("Feuil2").Range("A" & j) = DossierFactures

'fermeture classeur xlsx
  Workbooks(DossierFactures).Saved = True
  Workbooks(DossierFactures).Close

  DossierFactures = Dir
  j = j + 1
  Else: End If
Loop
    Columns("A:A").Replace ".xlsx", ""

End Sub

28 réponses

Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
9 déc. 2013 à 17:01
Tes deux lignes passent sans Msg et ça bloque sur "derlig..."
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 déc. 2013 à 17:43
Ca se corse, là ...
Alors :
ajoute ceci :
msgbox lafeuille
juste avant la ligne disant derlig ...
Lance et nore sur une feuille de papier les noms, très exactement, qui vont défiler et dis-les-moi ensuite tous, surtout le dernier avant blocage.
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
9 déc. 2013 à 19:22
ok, je vais faire ça.
Mais là, je suis obligé de quitter, j'ai des invités ce soir et c'est moi le cuisinier...!
Je te dis le résultat du test demain.
Bonsoir et vraiment merci
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
10 déc. 2013 à 13:21
Bonjour,
j'ai mis le msgbox avant derlig.
ça écrit "Feuil1" puis ça bloque à derlig.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 déc. 2013 à 13:43
Vu!
Ligne à corriger :
derlig = Worksheets(lafeuille).Range("B12:B" & Rows.Count).SpecialCells(xlCellTypeBlanks).Row
à corriger par :
derlig = cldesti.Worksheets(lafeuille).Range("B12:B" & Rows.Count).SpecialCells(xlCellTypeBlanks).Row
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
10 déc. 2013 à 13:59
Super génial, ça fonctionne très bien.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 déc. 2013 à 17:11
Au poil. Content pour toi
Si tu veux vraiment me remercier, satisfais ma curiosité.
1) C'était bien cela ? 12 classeurs mois à mettre sur 4 feuilles trimestres d'un classeur de synthèses ?
2) et du coup :; ce seul code a tout fait d'un seul coup ?
0
Philippe-thuin Messages postés 27 Date d'inscription samedi 30 novembre 2013 Statut Membre Dernière intervention 10 décembre 2013
10 déc. 2013 à 19:31
1) ce n'est pas 12 classeurs, à terme c'est une centaine par trimestre!
L'ensemble, environ 400/500 classeurs à répartir par trimestre.

2) et ton code a l'air de tout faire d'un coup!!!! c'est génial...
(même si j'ai compris ton raisonnement, je n'aurais pas pu l'écrire).
Par contre, tout n'est pas fini!
0
Rejoignez-nous