Macro Copier données de tableaux dans une autre feuille

Bonjour,

Je souhaiterais faire une macro qui me permet de copier les données de plusieurs tableaux (1 tableau par feuille, dans 3 feuilles différentes) et qu'ils me les collent sur une feuille nommée "Coller" à la suite.

- Les tableaux sont nommées (lundi, mardi, etc,...);

- De B3 (ligne de données) à Q... (selon le nombre de lignes);

- Colonnes R et S ne sont pas utiles;

""A noter que chaque tableaux ont une taille variable selon le nombre de lignes créées.""

Donc par exemple, en appuyant sur un bouton, la macro sélectionnerait le tableau, "lundi", donc de B4:Q..., feuille "Lundi". Copie celui-ci sans la ligne de donnée (B3) et le colle sur la feuille nommées "Collée".

Et ainsi de suite pour les 3 feuilles tout en copiant sur la ligne vide d'en dessous. Donc si on copie de B4 à Q26, il faudra donc que le second tableau se colle à la ligne 27.

J'espère être clair, je suis novice en VBA.

Merci d'avance

Hello,

Je pense que tu peux t'en sortir avec l'enregistreur de macro pour ce besoin

Bonjour et bienvenue sur le forum

Bonjour à tous

Tu devrais joindre un fichier exemple avec, si nécessaire, des données bidons.

Bye !

374test.xlsm (134.16 Ko)

Bonjour à tous,

J'ai essayer l'enregistreur mais le soucis qui se pose c'est la copie seulement des données du tableau (donc lignes pleines). Et que ça se colle à la suite.

Un essai à tester. Te convient-il ?

298test-v1.xlsm (141.55 Ko)
Option Explicit

Dim f As Worksheet, fc As Worksheet, js
Dim i&, lgn&, n&

Sub Copie()

    js = Array("Lundi", "Mardi", "Mercredi")
    Set fc = Sheets("Coller")
    fc.Cells.Clear

    For n = 0 To UBound(js) - 1
        If n = 0 Then
            Sheets(js(n)).Range("A3").CurrentRegion.Copy fc.Range("A1")
        Else
            lgn = fc.Range("A" & Rows.Count).End(xlUp)(2).Row
            Sheets(js(n)).Range("A3").CurrentRegion.Offset(1, 0).Copy fc.Range("A" & lgn)
        End If
    Next n
    fc.Activate
End Sub

Bye !

Merci gmb,

Cela fonction pour les 2 premières feuilles donc Lundi, Mardi et pas mercredi.

Est-ce qu'une explication serait possible? car je rajouterais surement des jours dans les mois à venir.

En tout cas merci pour la rapidité

pour les 2 premières feuilles donc Lundi, Mardi et pas mercredi.

Vraiment ?

Je crois que si tu te fis aux dates, c'est vrai qu'en feuille "Coller" tu n'as que des données pour les 10 et 11 mai 2021. Mais sur la feuille du "Mercredi" tu n'as que des dates du 11 mai. Et elles sont bien reprises sur la feuille "Coller".

je rajouterais surement des jours dans les mois à venir.

Dans ce cas, il te suffira de rajouter les noms des feuilles à la première instruction de la macro.

Pour voir celle-ci, taper simultanément sur les touches Alt et F11

Ok?

Bye !

Bonjour,

Je mets un peu de temps à vous répondre mais cela fonctionne bien. J'ai modifié quelques petites choses pour ajuster. Merci pour votre temps !

Dim f As Worksheet, fc As Worksheet, js
Dim i&, lgn&, n&

Sub Copie()

js = Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi")
Set fc = Sheets("Coller")
fc.Cells.Clear

For n = 0 To UBound(js) - 0
If n = 0 Then
Sheets(js(n)).Range("A1").CurrentRegion.Copy fc.Range("A1")
Else
lgn = fc.Range("A" & Rows.Count).End(xlUp)(1).Row
Sheets(js(n)).Range("A1").CurrentRegion.Offset(1, 0).Copy fc.Range("A" & lgn)
End If
Next n
fc.Activate
End Sub

Rechercher des sujets similaires à "macro copier donnees tableaux feuille"