récuperer datas sur plusieurs feuilles

  • Initiateur de la discussion Michèle
  • Date de début
M

Michèle

Guest
Bonjour à tous,
J'ai un petit souci. J'ai adapté grace à ce formidable forum, un code VBA permettant de recupérer des datas sur plusieurs feuilles.

Sub DESESPE()

Dim val, val2 As Variant
Dim k, i, p, c As Integer


c = 2
Application.Goto Sheets('Base Produits').Range('D5')
For k = 2 To Sheets.Count
For i = 1 To Sheets('Base Produits').Range('D65536').End(xlUp).Row
Retour:
val = Sheets('Base Produits').Cells(i, 4).value
For p = 1 To Sheets(k).Range('B65536').End(xlUp).Row
val2 = Sheets(k).Cells(p, 2).value
If val = val2 Then
Sheets(1).Cells(i, c).value = Sheets(k).Cells(p, 6).value
i = i + 1
GoTo Retour
End If
Next p
Next i
c = c + 1
Next k
End Sub

Mon classeur est composé de 13 feuilles:
-les 12 dernières feuilles sont les 12 mois de l'année. Chacune d'elle comporte les codes+nom des produits ainsi que leurs chiffres d'affaires respectifs.

-la 1ère feuille comporte un tableau récapitulatif. Il est censé être alimenté par les chiffres se trouvant dans les 12 autres. Il est constituée de 14 colonnes. Dans les 2 premières, on y trouve les codes + nom des produits. Ces deux colonnes me servent à comparer les codes+nom de produits dans chaque onglet afin de pouvoir récupéré les chiffres d'affaires de ceux-ci.

Sur un fichier test, ce code marche très bien mais dès que je le copie sur un vrai fichier. Il ne récupère que les chiffres du mois de janvier et continue à chercher, je ne sais pas trop quoi sans aboutir à grand chose. J'ignore d'où ça bloque.

Malheureusement, je ne peux pas vous joindre un fichier. J'espère que ceci n'est pas trop génant.
Merci d'avance pour votre aide
 

pierrejean

XLDnaute Barbatruc
bonsoir Michele

sur un premier coup d'oeil je pense que le retour : et goto retour est fortement suspect

pour y voir vraiment clair crée un fichier exemple avec 2 ou 3 feuilles et 4 ou 5lignes depourvues de données confidentielles et je te garantis que ton probleme sera tres vite reglé
 
M

Michèle

Guest
Bonjour PierreJean,
Désolée pour la réponse tardive mais j'ai eu un petit problème technique. Bref, voilà un petit fichier. Ce matin, le code ne marche même plus...
Merci bien [file name=Fin2005.zip size=23857]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Fin2005.zip[/file]
 

Pièces jointes

  • Fin2005.zip
    23.3 KB · Affichages: 34
M

Michèle

Guest
Bonsoir,
Encore merci à PierreJean pour sa réponse!! Au fait, cela m'a donnée une petite idée pour aller chercher l'erreur et rectifier la macro, maintenant, ça marche super bien nickel ('trop de la balle comme dirait un ami'):


Dim v, v2 As Variant
Dim k, i, p, c As Integer

c = 8
Sheets('Base Produits').Range('F3').Select
For k = 2 To Sheets.Count
For i = 3 To Range('F65536').End(xlUp).Row
v = Cells(i, 6).Value
For p = 3 To Sheets(k).Range('B65536').End(xlUp).Row
v2 = Sheets(k).Cells(p, 2).Value
If v = v2 Then
Sheets(1).Cells(i, c).Value = Sheets(k).Cells(p, 6).Value

End If
Next p
Next i
c = c + 1
Next k

End Sub

Bonne soirée et à bientôt,
Merci encore pour le coup de main,
 

Discussions similaires

Réponses
9
Affichages
127

Statistiques des forums

Discussions
312 967
Messages
2 094 033
Membres
105 921
dernier inscrit
PKOB