Extraction de données

Y compris Power BI, Power Query et toute autre question en lien avec Excel
A
ACCRO
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 6 avril 2019
Version d'Excel : Office365

Message par ACCRO » 2 juillet 2019, 10:23

Bonjour à tous,
Ci-joint classeur comprenant 3 feuilles, je cherche à créer une macro qui reprend les données (et le format) de la feuille "Textile" et de la feuille " Chaussures" vers la feuille "Compilation".
Les feuilles "Textile et Chaussures ont la même structure
J'ai crée une macro "Rafréchir" celle ci fonctionne mais maintenant je cherche à en créer une autre (ou éventuellement qu'une seule) qui quand je vais l'exécuté, va rafréchir la feuille "Compilation" si les données de la feuille "Textile ou Chaussures" ont été modifiées (avec le format des cellules)
Voilà, je pense que cette macro n'est pas compliquée à créer mais dans la mesure où je suis novice en la question, j'ai beaucoup de mal à l'a créer
Merci à vous
Compilation Textile et Chaussures.xlsm
(588.48 Kio) Téléchargé 8 fois
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'911
Appréciations reçues : 827
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 2 juillet 2019, 11:45

Bonjour,

si tu veux compiler des onglets, voici une proposition
compil onglets.xlsm
(22 Kio) Téléchargé 6 fois

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
A
ACCRO
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 6 avril 2019
Version d'Excel : Office365

Message par ACCRO » 2 juillet 2019, 12:14

Merci pour votre aide...
Dans la mesure où je vais ajouter des feuille à ce classeur, es-t-il possible de nommer les feuilles à compiler

Cdlt
A
ACCRO
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 6 avril 2019
Version d'Excel : Office365

Message par ACCRO » 2 juillet 2019, 13:56

Désolé, mais cela ne fonctionne pas sur mon classeur ....
Avatar du membre
Xmenpl
Membre impliqué
Membre impliqué
Messages : 2'679
Appréciations reçues : 185
Inscrit le : 16 mai 2018
Version d'Excel : 2003 à 2013

Message par Xmenpl » 2 juillet 2019, 14:10

Bonjour,
il est peut être temps de penser à faire autrement ?
d'ordinaire on importe toutes les infos dans un seul est unique tableau.

Ensuite avec des tableaux croisés qui s'actualiseront de manière automatique rien de plus facile que
de récupérer les infos par type ( Shoes ou Textile )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'911
Appréciations reçues : 827
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 2 juillet 2019, 16:49

ACCRO a écrit :
2 juillet 2019, 13:56
Désolé, mais cela ne fonctionne pas sur mon classeur ....
Qu'est-ce qui ne va pas ?

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'911
Appréciations reçues : 827
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 2 juillet 2019, 16:56

Sub RECAP()
Dim ligne As Long, ws As Worksheet

    With ActiveSheet.ListObjects(1)
        If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
    End With
    ligne = 2
    For Each ws In Worksheets
        If ws.Name = "Chaussures" Or ws.Name = "Textile" Then
            ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Offset(1, 0).Resize(ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Rows.Count - 1).Copy Destination:=ActiveSheet.Cells(ligne, 1)
            ligne = Cells(Rows.Count, 1).End(xlUp).Row + 1
        End If
    Next

End Sub
Compilation Textile et Chaussures.xlsm
(139.1 Kio) Téléchargé 3 fois

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'911
Appréciations reçues : 827
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 2 juillet 2019, 16:58

ACCRO a écrit :
2 juillet 2019, 12:14
Merci pour votre aide...
Dans la mesure où je vais ajouter des feuille à ce classeur, es-t-il possible de nommer les feuilles à compiler
tu peux mettre un préfixe significatif comme je l'avais fait dans la démo que je t'avais envoyée et tester le début du nom de la feuille sur ce prefixe (exemple un _) ou inversement affecter ce préfixe aux feuilles exclues !

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
A
ACCRO
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 6 avril 2019
Version d'Excel : Office365

Message par ACCRO » 2 juillet 2019, 21:01

La feuille de destination des données compilées doit être "Compilation" et je ne la vois pas dans votre macro !
Sauf si cette macro doit être exécutée à partir de cette feuille, ce qui n'est pas le cas
MERCI
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'911
Appréciations reçues : 827
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 3 juillet 2019, 02:31

ACCRO a écrit :
2 juillet 2019, 21:01
La feuille de destination des données compilées doit être "Compilation" et je ne la vois pas dans votre macro !
Sauf si cette macro doit être exécutée à partir de cette feuille, ce qui n'est pas le cas
MERCI
ajoute alors l'instruction correspondante
Sub RECAP()
Dim ligne As Long, ws As Worksheet
With Sheets("Compilation")
    If Not .ListObjects(1).DataBodyRange Is Nothing Then .ListObjects(1).DataBodyRange.Delete
    ligne = 2
    For Each ws In Worksheets
        If ws.Name = "Chaussures" Or ws.Name = "Textile" Then
            ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Offset(1, 0).Resize(ws.Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Rows.Count - 1).Copy Destination:=.Cells(ligne, 1)
            ligne = .Cells(Rows.Count, 1).End(xlUp).Row + 1
        End If
    Next
End With
End Sub
Compilation Textile et Chaussures.xlsm
(139.55 Kio) Pas encore téléchargé

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Extraction de données
    par KingThanos » 10 avril 2018, 09:20 » dans Excel - VBA
    8 Réponses
    208 Vues
    Dernier message par jmd
    10 avril 2018, 17:54
  • Extraction de données
    par balby64 » 26 avril 2017, 22:53 » dans Excel - VBA
    3 Réponses
    129 Vues
    Dernier message par i20100
    27 avril 2017, 00:41
  • extraction de donnees
    par lamineyassine » 11 avril 2016, 18:46 » dans Excel - VBA
    4 Réponses
    155 Vues
    Dernier message par fred2406
    14 avril 2016, 11:36
  • extraction de données
    par blk59 » 14 mai 2018, 22:36 » dans Excel - VBA
    2 Réponses
    74 Vues
    Dernier message par blk59
    14 mai 2018, 22:59
  • Extraction de données
    par Beberttlse31 » 17 octobre 2018, 22:49 » dans Excel - VBA
    8 Réponses
    117 Vues
    Dernier message par curulis57
    19 octobre 2018, 23:24
  • extraction de données
    par impreza73 » 26 août 2014, 17:30 » dans Excel - VBA
    3 Réponses
    332 Vues
    Dernier message par impreza73
    27 août 2014, 22:17