Au secours - Boucle vba qui fait n'importe quoi.

fabancel

XLDnaute Junior
Bonjour.

Débutant en VBA, j'ai essayé de bricoler une fonction boucle avec des bouts de codes du forum, mais ça s'est conclu par un échec retentissant.

Voici le problème :
J'ai une page source : Export ARC
et une page de résultat : synthèse

Dans ma page "Export ARC", j'ai X sociétés sur X lignes avec des chiffres sur plusieurs colonnes (un tableau quoi...)
Je veux créer, sur la page "synthèse", X tableaux de synthèse reprenant les données qui m'intéressent pour chaque société.

J'ai trouvé un code pour copier les données sur le tableau.
J'ai trouvé le code pour copier le tableau de synthèse en bas de la feuille "synthèse".
J'ai inséré le tout dans une boucle For. et le résultat ne rime à rien. ça me créé un nombre insuffisant de tableaux de synthèse et la copie des données ne fonctionne que pour la première société.

Quelqu'un pourrait-il m'aider à corriger mon code ?


Sub creation_tableau()

Application.ScreenUpdating = False

'Supprime la fusion des cellule dans l'onglet "export ARC".
Sheets("export ARC").Activate
Range("A1:HA200").Select
Selection.MergeCells = False


For i = 20 To Range("A65536").End(xlUp).Row
With Worksheets("Synthèse")
.[A6].Value = Cells(i, "A").Value
.[D6].FormulaR1C1 = _
"=MID('Export ARC'!R2C21,SEARCH(""§"",SUBSTITUTE('Export ARC'!R2C21,"" "",""§"",LEN('Export ARC'!R2C21)-LEN(SUBSTITUTE('Export ARC'!R2C21,"" "",""""))-1))+1,99)"
.[B8].Value = Cells(i, "AU").Value
.[D8].Value = Cells(i, "BB").Value
.[B9].Value = Cells(i, "AT").Value
.[D9].Value = Cells(i, "AZ").Value
.[B10].Value = Cells(i, "BD").Value
.[D10].Value = Cells(i, "BM").Value
.[B11].Value = Cells(i, "BQ").Value
.[D11].Value = Cells(i, "BW").Value
.[B12].Value = Cells(i, "BX").Value
.[D12].Value = Cells(i, "CB").Value
.[B13].Value = Cells(i, "AM").Value
.[D13].Value = Cells(i, "AS").Value
End With

'Duplique le tableau vers le bas.
Sheets("Synthèse").Select
Rows("6:13").Select
Selection.Copy
Range("A6").Select
Do Until IsEmpty(ActiveCell) = True
ActiveCell.Offset(15, 0).Activate
Loop
ActiveSheet.Paste

'Ré-initialise le tableau modèle.
Range("A6:D6,B8:C15").Select
Selection.ClearContents
Range("A6").Select
ActiveCell.FormulaR1C1 = "MODELE NE PAS TOUCHER"
Range("a1").Select

Next i

Sheets("Synthèse").Activate
Application.ScreenUpdating = True

End Sub
 

Pièces jointes

  • Copie de Export ARC test - v2.xls
    203 KB · Affichages: 47

fredl

XLDnaute Impliqué
Re : Au secours - Boucle vba qui fait n'importe quoi.

Yo,
trouvé mon gars!
quand tu mets "Cells(i, "A").Value", par ex, tu récuperes une valeur(vide) dans l'onglet "Synthèse"....
Voir doc joint modifié.
Dis moi!

nb : ça vaut bien un p'tit Kfé ca!


Fred
 

Pièces jointes

  • ExportARC.xls
    205.5 KB · Affichages: 36

Jam

XLDnaute Accro
Re : Au secours - Boucle vba qui fait n'importe quoi.

salut fabancel, fredl,

Ce que ne te dit pas fredl c'est qu'il a du utiliser les outils de débogage à sa disposition pour trouver l'erreur.
Quand on rencontre ce type de problème il faut avoir recours à ces outils et ne pas hésiter à lancer le code en mode pas à pas pour étudier les valeurs que prennent les variables. Non seulement cela permet de trouver ce qui ne fonctionne pas correctement, mais cela permet aussi de mieux comprendre ses erreurs de codage.
La fenêtre Variable Locale du menu Affichage est tout particulièrement utile.
Pour déboguer il suffit de se positionner dans le code et le lancer avec F8 au lieu de F5, puis d'avancer de ligne en ligne pour pouvoir lire dans la fenêtre Variable Locale les modifications (ou non ;)) des variables.
Voilà c'est une bonne base de travail qu'il ne faut surtout pas omettre si l'on veut trouver par soi-même sans "perdre" de temps à attendre une hypothétique réponse d'un forum aussi bon que celui-ci :rolleyes:

Bon courage.
 

Discussions similaires

Réponses
7
Affichages
433
Réponses
12
Affichages
684

Statistiques des forums

Discussions
312 206
Messages
2 086 222
Membres
103 159
dernier inscrit
FBallea