Copie cellules de plusieurs feuilles vers une dernière

KopKunKam

XLDnaute Nouveau
Bonjour à tous

Je fais appel à vos lumières car je bloque sur mon fichier...

Je vous explique mon problème:

Je travaille sur plusieurs onglets:

- de Dimanche à Lundi
- de Lundi à Mardi
- de Mardi à Mercredi
- de Mercredi à Jeudi
- de Jeudi à Vendredi
- de Vendredi à Samedi
- de Samedi à Dimanche

Chaque onglet répertorie une liste de tâches effectuées dans la nuit et la journée:

Dans l'onglet "Dimanche à Lundi" il y a deux tableaux, comprenant les tâches de la nuit du dimanche et la journée du lundi.

Les tâches sont remplies par l'utilisateur. Il y a un nombre indéfini de tâches, et ce nombre peut différer en fonction des jours. (exemple: 9 tâches le lundi, 3 le soir, 4 le mardi...). Ceoendant je fixe un nombre maximum de tâches à 35 (cela "fixe les dimensions de mon tableau)

J'aimerais répertorier dans un dernier onglet la liste de toutes les tâches (avec la date, l'horaire de début et l'horaire de fin associés), présentes dans toutes mes feuilles.
Je voudrais qu'elles soient les unes à la suite des autres (mon problème ici est que je n'ai pas un nombre défini de tâches).

Je ne sais pas trop par quelle fonction passer...Mais je sens qu'il y a quelquechose à faire!

je débute sur excel et vba du coup je suis un peu perdue, je compte sur vos conseils et vos lumières!
 

Pièces jointes

  • ExempleTest 2.xlsx
    20.8 KB · Affichages: 77

WUTED

XLDnaute Occasionnel
Re : Copie cellules de plusieurs feuilles vers une dernière

Bonjour KopKunKam,

Tu peux utiliser End pour avoir la dernière ligne non vide de ta feuille, par exemple :

VB:
Sheets("Lundi à Mardi").Range("C65536").End(xlUp).Row

Cela te renvoie donc dans ton cas, la dernière ligne occupée par une tâche (14 dans ton exemple, car tu as rempli avec "..."), en prenant en compte que tu commences ta liste de tâches à la ligne 10, tu peux donc assez facilement déduire ton nombre de tâche si besoin.

Bonne journée,
WUTED
 

KopKunKam

XLDnaute Nouveau
Re : Copie cellules de plusieurs feuilles vers une dernière

Merci WUTED,

Le problème est que j'ai deux tableaux à côté l'un de l'autre. cela signifie que je devrais utiliser ce code deux fois pour chaque feuille avec à chaque fois un Range différent?

Comment pourrais-je traduire également le fait que je veuille mettre toutes ces "tâches reconnues" (comptées après le code déterminant la dernière ligne non vide)
les unes à la suite des autres dans ma dernière feuille?
 

WUTED

XLDnaute Occasionnel
Re : Copie cellules de plusieurs feuilles vers une dernière

Re,

Essaye avec ça :

VB:
Sub bilan()
    Dim dernLigne As Integer
    'Pour chacune des feuilles
    For Each sh In Sheets
         'On assigne à dernLigne le num de la dernière ligne de la feuille "Planning"
        dernLigne = Sheets("Planning").Range("A65536").End(xlUp).Row
         'Si la feuille est différente de la feuille "Planning" alors
        If sh.Name <> "Planning" Then
            ' k =0 équivaut au premier tableau, k=1 au second
            For k = 0 To 1
                'de la ligne 10 à la dernière ligne
                For i = 10 To sh.Range("C65536").Offset(0, k * 5).End(xlUp).Row
                    'On recopie les valeurs dans la feuille "Planning"
                    Sheets("Planning").Range("A" & dernLigne).Value = sh.Range("C" & i).Value
                    Sheets("Planning").Range("A" & dernLigne).Offset(0, 1).Value = sh.Range("C8").Value
                    Sheets("Planning").Range("A" & dernLigne).Offset(0, 2).Value = sh.Range("D" & i).Offset(0, k * 5).Value
                    Sheets("Planning").Range("A" & dernLigne).Offset(0, 3).Value = sh.Range("E" & i).Offset(0, k * 5).Value
                    'On incrémente le numéro de la dernière ligne après avoir recopié chaque tâche
                    dernLigne = dernLigne + 1
                Next i
            Next k
        End If
    Next sh
End Sub

Bonne journée,
WUTED
 

KopKunKam

XLDnaute Nouveau
Re : Copie cellules de plusieurs feuilles vers une dernière

ça fonctionne !!!!:D

Merci énormément WUTED.
Je n'ai pas tout compris au code mais je vais travailler dessus pour bien comprendre comment tu as utilisé ces fonctions !

Très bonne journée
 

Discussions similaires

Réponses
3
Affichages
409

Statistiques des forums

Discussions
312 198
Messages
2 086 149
Membres
103 132
dernier inscrit
hedfahmi