Aide pour macro avec boucle

travolta

XLDnaute Junior
Bonjour le forum,

J'aurais besoin de votre aide pour réaliser une macro, où il y aura je suppose des boucles à l'intérieur, vu que la taille du tableau n'est pas connu.
Hors je suis nul en boucle :)

Un fichier valant mieux qu'un long discours, je joint un exemple de ce que j'aimerais faire.
J'ai souligné en jaune dans l'onglet nommé "BD" les données que je voudrais récupérer dans l'onglet nommé "Recap"

L'idée est donc de faire une boucle qui me permettrait de récupérer les infos de l'onglet "BD" et de les ajouter dans l'onglet "Récap".

Les infos à récupérer en fait sont toujours la case à coté des cases nommées "Village:" , "Ressources espionnées:" et "Butin:"
Je pense qu'il faut utiliser une boucle car le nombre de ligne entre ces 3 cases à récupérer n'est pas toujours le même

Bon apres pour le reformatage du butin et des ressources, je devrais y arriver
(c'est à dire par exemple transformer 2.218 2.218 3.729 en 3 cases contenant 2218 puis 2218 et 3729)

Merci par avance de toute l'aide que vous pourrez m'apporter.
 

Pièces jointes

  • exemple.xls
    23 KB · Affichages: 44
  • exemple.xls
    23 KB · Affichages: 38
  • exemple.xls
    23 KB · Affichages: 36
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Aide pour macro avec boucle

Salut Travolta,

Tu peux utilisé ce code
Code:
Sub Recap()
  Dim DerLig As Long, Lig As Long, ShtR As Worksheet
  Dim MotClé As String, NLigR As Long, TabVal() As String, I As Integer
  ' Initialisation des variables
  Set ShtR = Sheets("Recap")
  With Sheets("BD")
    DerLig = .Range("A" & Rows.Count).End(xlUp).Row
    For Lig = 1 To DerLig
      MotClé = .Range("A" & Lig)
      Select Case MotClé
      Case "Village:"
        ' Prochaine ligne vide
        NLigR = ShtR.Range("A" & Rows.Count).End(xlUp).Row + 1
        ' Inscire les données
        ShtR.Range("A" & NLigR).Value = .Range("B" & Lig).Value
      Case "Ressources espionnées:"
        ' Prochaine ligne vide = dernière ligne du village
        NLigR = ShtR.Range("A" & Rows.Count).End(xlUp).Row
        ' Récupérer le tableau des valeurs
        TabVal = Split(.Range("B" & Lig), " ")
        ' Inscire les données
        For I = 0 To UBound(TabVal)
          ShtR.Cells(NLigR, 2 + I).Value = Replace(TabVal(I), ".", "")
        Next I
      Case "Butin: "
        ' Prochaine ligne vide = dernière ligne du village
        NLigR = ShtR.Range("A" & Rows.Count).End(xlUp).Row
        ' Récupérer le tableau des valeurs
        TabVal = Split(.Range("B" & Lig), " ")
        ' Inscire les données
        For I = 0 To UBound(TabVal)
          ShtR.Cells(NLigR, 5 + I).Value = Replace(TabVal(I), ".", "")
        Next I
      End Select
    Next Lig
  End With
End Sub

Je n'arrive pas à poster ton fichier modifié :eek:

A+
 

travolta

XLDnaute Junior
Re : Aide pour macro avec boucle

Merci beaucoup BrunoM45 !

ça fait pile poil ce que je voulais :)
Ce forum est vraiment génial, à chaque fois que j'ai eu un besoin quelqu'un m'a trouvé la solution, et trés rapidement . Je crois que c'est assez unique sur le net un forum pareil. chapeau messieurs.
 

Discussions similaires

Réponses
4
Affichages
200

Statistiques des forums

Discussions
312 316
Messages
2 087 185
Membres
103 491
dernier inscrit
bilg1