Boucle pour compléter un tableau

  • Initiateur de la discussion Initiateur de la discussion babas
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

babas

XLDnaute Junior
Bonjour à tous,

Je coince sur la création de ma macro.
Je vous explique mon souci.

Sur une feuille j'ai des données, je voudrais venir récupérer ces données pour les intégrer sur une autre feuille.
Les données à récupérer sont sur la feuille "Rlt", elles doivent être ramenées sur la feuille "A" de la façon suivante :
Sur la feuille A, (M4) doit récupérer (M3) de la feuille Rlt. (M5) doit récupérer (M4). idem pour les colonnes suivantes.
Sachant que lorsque nous arrivons à la dernière colonne sur la feuille Rlt, on reprend du début…
J'ai fait une macro qui ne fait pas du tout le job et je ne vois pas pourquoi...

Voici ce que je voudrais
Sans titre.png

J'ai peur de ne pas être clair du tout, il est un peu tard…

Si l'un d'entre vous trouve une solution 🙂

Merci d'avance,

Bonne nuit,
Bonne journée
 

Pièces jointes

  • Sans titre.png
    Sans titre.png
    54.4 KB · Affichages: 28
  • exemple1.xlsm
    exemple1.xlsm
    57.3 KB · Affichages: 11
Dernière édition:
Bonjour Babas,
Votre code ne peut pas marcher car les ForNext sont mal imbriqués.
Au premier cycle tant que y<196 et x<nblign alors a et b ne bougent pas ( a=3, b=13 )
Or il faut recalculer a et b en permanence.

Un essai pour voir si j'ai bien tout compris :
VB:
Sub Rlt_2()
nblign = Sheets("A").Range("A1")    'ligne max
nblign2 = Sheets("Rlt").Range("L4") 'ligne max rlt
dercol = Sheets("Rlt").Range("L5")  'dernière colone rlt
With Sheets("A")
    a = 2: b = 12                   ' a et b init avec -1 car +1 en entrant dans le cycle
    For y = 13 To 196               'donne l'adresse des colonnes
        b = b + 1
        If b = dercol + 1 Then b = 13
        For x = 4 To nblign         'donne l'adresse des lignes sur la feuille roulements calendrier
            a = a + 1
            If a = nblign2 + 1 Then a = 3
            .Cells(x, y) = Sheets("Rlt").Cells(a, b)
        Next x
    Next y
End With
End Sub
 
Bonjour
Je me suis permis de tout changer...
Sur la feuille roulement tu as le roulement type par personne
Sur la feuille planning si tu changes l'année tout se met à jour...
En fait calcul en fonction de la date
Je divise la date par le nombre de roulement...
et je vais chercher la cellule correspondante sur la feuille roulement avec la fonction decaler...
A+ François
Salut Sylvanu
 

Pièces jointes

Merci à vous deux. La solution de @fanfan38 est intéressante mais je ne vous ai transmis qu'un aperçu du programme et par conséquent elle est trop compliquée pour être intégrée à l'ensemble des autres feuilles.

Une question que je me suis posé ce matin, est-il possible de faire deux 'Next' en même temps afin d'augmenter de 1 chaque référence. J'ai bien saisi que la proposition de @sylvanu correspond à ceci mais tourné différemment.

Encore merci, je teste cette nuit.

Bon fin de dimanche
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
150
Retour