• Publicité

Extraction de données

Postez ici vos questions et(ou) vos solutions ayant pour thème les logiciels ou l'informatique en général. Vous pouvez également poser ici les questions informatiques qui n'auraient pas leur place dans les autres sections de notre forum d'entraide.

Modérateurs: Sebastien, Stéphane, Christophe

Extraction de données

Messagepar TWYSTY » 24 Nov 2017 20:10

Bonjour les amis,
Vous êtes géniaux vous m'avez déjà aidée sur un autre sujet et je vous sen remercie énormément. :-D
J'ai encore un service a vous demandé ....
Je souhaiterais faire une extraction de données d'une feuille a une autre mais avec les explications sur le même sujet dans une autre discutions je n'y arrive toujours pas !!!!! :roll:
Dans mes feuilles " PA " et" PB " j'ai paramétrée de façon a ce que certaines dates apparaissent en rouge ou orange en fonction de l'urgence.
Dans la feuille " Résumé " je souhaite extraire les données de plusieurs ligne de plusieurs colonnes a la fois.
Je souhaite aller chercher dans les feuilles " PA" et "PB " toutes les lignes ou il y a une dates apparaissant en rouge et en jaune pour qu'elles se mettent directement dans la feuille " Résumé "
Je ne sais pas si j'ai été assez clair mais vraiment je ne m'en sort pas
Je joint le fichier
http://www.cjoint.com/c/GKys3q615RX
Un énorme merci
TWYSTY
No0b
No0b
 
Messages: 12
Enregistré le: 13 Nov 2017 14:22

Re: Extraction de données

Messagepar TWYSTY » 27 Nov 2017 11:37

Ou plutôt en fait l'idée serait de balayer toutes les feuilles PA PB etc ... et récupérer toutes les lignes avec des cellules remplies .
J'ai vu qu''il fallait trouver ou créer des code visuel basic qu'en pensez vous et pouvez vous m'aider ????
Merci à vous
TWYSTY
No0b
No0b
 
Messages: 12
Enregistré le: 13 Nov 2017 14:22

Re: Extraction de données

Messagepar Sebastien » 27 Nov 2017 18:52

Bonjour,
TWYSTY a écrit:Je souhaite aller chercher dans les feuilles " PA" et "PB " toutes les lignes ou il y a une dates apparaissant en rouge et en jaune pour qu'elles se mettent directement dans la feuille " Résumé "

TWYSTY a écrit:Ou plutôt en fait l'idée serait de balayer toutes les feuilles PA PB etc ... et récupérer toutes les lignes avec des cellules remplies .

Quelles cellules ? Si on fait une Macro pour prendre toutes les lignes de PA et PB, la condition sur la couleur ne sert à rien dans ce cas ?

Je peux coder une macro qui récupère les champs "Cug","Adresse","Débord (x si ok)","Libellé","DLC/dluo (jj/mm/aaaa)" et "qte à écouler" mais je dois être sur du critère de sélection des lignes à extraire.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5414
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Extraction de données

Messagepar TWYSTY » 27 Nov 2017 21:03

Bonsoir Sébastien, oui c'est tout à fait ce qu'il me faut je souhaite recuperer les champs
"Cug","Adresse","Débord (x si ok)","Libellé","DLC/dluo (jj/mm/aaaa)" et "qte à écouler" Le tout sur la feuille résumé en faisant une extraction
sachant qu' il y a environs 40 feuilles a balayer PA,PB,PC,etc jusqu 'a PZ.
Tu penses que c est jouable ???
Merci
TWYSTY
No0b
No0b
 
Messages: 12
Enregistré le: 13 Nov 2017 14:22

Re: Extraction de données

Messagepar Sebastien » 28 Nov 2017 20:48

Bonjour,

Oui c'est faisable. Il le reste une question, tu dis qu'il y a une 40aine de pages, et tu évoques des codes de PA à PZ.
Pour effectuer un traitement automatique, il va falloir que je déclare à la macro quelles feuilles elle doit traiter et quelles feuilles elle ne doit pas traiter.

Peux-tu me dire comment repérer les feuilles à traiter ? Elles commencent toutes par P + une lettre ? (ça en fait 26). Y a t'il d'autres noms ? A défaut, je devrais ajouter une liste de feuilles à traiter, ce qui peut être pas mal si on veut ajouter des feuilles dans le futur.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5414
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Extraction de données

Messagepar TWYSTY » 28 Nov 2017 23:08

Bonsoir Sébastien,
Mes feuilles sont nommées par ordre alphabétique et commencent par un P puis A,B,C....jusqu' a Z et d'autres qui commencent par un G puis A,B,C jusqu' à H mais je vais peu être a l avenir devoir rajouter d'autres feuilles mais je ne sais pas comment elle vont se nommées. Merci beaucoup de prendre du temps pour m'aider c'est très gentil à toi.
Pourras tu m'expliquer la démarche afin que je comprenne ce que tu vas faire, mon but n'est pas de demander à ce que l'on fasse le travail à ma place mais vraiment de comprendre le fonctionnement et ce que cela veut dire, alors encore merci.
TWYSTY
No0b
No0b
 
Messages: 12
Enregistré le: 13 Nov 2017 14:22

Re: Extraction de données

Messagepar Sebastien » 29 Nov 2017 20:04

Bonjour,

Je peux coder une macro VBA Excel avec les éléments fournis. Par contre, je viens de me souvenir, suite à ton MP, que tu utilises Google Sheet.

Autant une formule peut être réutilisée + ou - facilement entre Excel et Google Sheet, autant le code VBA est propre à Office ne sera pas utilisable. J'ai un peu regardé et Google Sheet utilise apparemment du JavaScript. Si je code une macro VBA, elle ne pourra pas être utilisée dans Google sheet, et je ne pourrais pas la traduire.

Est-ce que je code quand même une macro VBA Excel (sachant que je ne serai d'aucune aide pour la conversion dans Google Sheet) ?

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5414
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Extraction de données

Messagepar TWYSTY » 29 Nov 2017 21:09

Tu penses que le langage VBA Excel et Google sheet est si différent que ça ??
TWYSTY
No0b
No0b
 
Messages: 12
Enregistré le: 13 Nov 2017 14:22

Re: Extraction de données

Messagepar TWYSTY » 29 Nov 2017 21:37

Je ne voudrais pas te faire perdre ton temps mais si éventuellement tu m expliquais la démarche que tu ferais sur Excel peu être qu' avec un tuto sur le langage spécifique sheet j arriverais à ce que je souhaites ????? J arrive déjà à ouvrir la page ou je peu noter le codage il me faut juste le cheminenement .
Merci
TWYSTY
No0b
No0b
 
Messages: 12
Enregistré le: 13 Nov 2017 14:22

Re: Extraction de données

Messagepar Sebastien » 29 Nov 2017 22:16

TWYSTY a écrit:Je ne voudrais pas te faire perdre ton temps mais si éventuellement tu m expliquais la démarche que tu ferais sur Excel peu être qu' avec un tuto sur le langage spécifique sheet j arriverais à ce que je souhaites ?????

C’est pas vraiment une perte de temps car le code est publié sur le forum et peut toujours servir d'exemple à d'autres membres. De plus, des macros qui extraient automatiquement des données de feuilles vers une synthèse, c'est un demande récurrente.

Je vais essayer de coder quelque chose d'ici la fin de semaine, le code sera commenté pour expliquer comment ça fonctionne. Au pire, ça servira peut-être de base pour que quelqu'un le traduise en version Google Sheet.

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5414
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE

Re: Extraction de données

Messagepar TWYSTY » 29 Nov 2017 22:27

Très bien merci beaucoup :-)
TWYSTY
No0b
No0b
 
Messages: 12
Enregistré le: 13 Nov 2017 14:22

Re: Extraction de données

Messagepar Sebastien » 02 Déc 2017 19:06

Bonjour,

Ci-dessous une macro permettant de copier le contenu des feuilles PA, PB etc. dans la feuille résumé.
Les feuilles à traiter avec la macro sont à renseigner dans la feuille nommée "FEUILLES_A_TRAITER". Les noms de feuilles PA, PB, PC etc sont à renseigner dans la colonne A.

Pour lancer la recopie, il faut lancer la macro "COPIE_DES_DONNEES". J'ai commenté le code pour expliquer le fonctionnement.


Le code de la macro (à insérer dans un module VBA) :
Code: Tout sélectionner
Sub COPIE_DES_DONNEES()

'Définition des variables
Dim base As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long, DerLig As Long, Var As Variant
Dim DerLigVar As Long, DerLigRes As Long

'Feuille comprenant la liste des pages à traiter avec la macro (PA, PB, etc.)
'Les noms de feuilles doivent être inscrits dans la colonne A sans cellule vide.
Set base = Worksheets("FEUILLES_A_TRAITER")

'Récupération du numéro de la dernière ligne de "FEUILLES_A_TRAITER"
DerLig = Split(base.UsedRange.Address, "$")(4)

'Dans "FEUILLES_A_TRAITER", on ne va parcourir que la première colonne (colonne A)
NoCol = 1

'Création d'une boucle pour traiter toutes les pages référencées dans "FEUILLES_A_TRAITER"
For NoLig = 1 To DerLig

'Page à traiter
Var = base.Cells(NoLig, NoCol)

'Récupération de la dernière ligne de la page à traiter
DerLigVar = Sheets(Var).Range("A65536").End(xlUp).Row

'Récupération de la ligne où coller les données dans la feuille "résumé".
DerLigRes = Sheets("résumé").Range("A65536").End(xlUp).Row + 1

'Copie des données de la page à taiter
ActiveWorkbook.Worksheets(Var).Range("A13:F" & DerLigVar).Copy

'Collage des données dans la feuille "Résumé". Collage spécial pour avoir les valeurs.
ActiveWorkbook.Worksheets("résumé").Range("A" & DerLigRes).PasteSpecial Paste:=xlPasteValues

'On traite la prochaine page
Next
Set base = Nothing

End Sub


Ci-joint un fichier exemple avec la macro insérée : https://www.astucesinternet.com/data/images_forum/macro_extraction_donnees.zip


A noter : Pour le code permettant de récupérer la dernière ligne de la liste de feuilles à traiter, je me suis inspiré d'un exemple disponible sur cette page : https://excel.developpez.com/actu/47690/Boucles-pour-parcourir-une-colonne-une-ligne-une-plage-de-donnees-deux-nouvelles-methodes/

Code: Tout sélectionner
'Récupération du numéro de la dernière ligne de "FEUILLES_A_TRAITER"
DerLig = Split(base.UsedRange.Address, "$")(4)


@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 5414
Enregistré le: 14 Fév 2005 19:17
Localisation: LILLE


Retourner vers Forum d'entraide informatique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités

  • Publicité