Extraction de données sous VBA

joseph-53

XLDnaute Nouveau
Feuil1
qualité code Clé
A877 1310 P
A942 1310 P
A986 1290 P
A996 1310 X
A082 1290 X
A269 1467 P
etc… etc… etc…


Feuil2
qualité code Clé
A996 1310 X
A082 1290 X

Par action sur un bouton
La feuil1 est analysée ligne par ligne
Lorsque la clé X est rencontrée, la ligne est alors copiée vers feuil2
Son statut dans feuil1 passe alors de X à P

Bonjour le forum,
Quelqu'un pourrait-il me dépanner sur ce petit problème VBA s'il vous plait ?

Merci beaucoup de votre aide
Cordialement
 

Catrice

XLDnaute Barbatruc
Re : Extraction de données sous VBA

Bonjour,

Ci-joint un exemple :
Code:
Sub Test()
For Each X In Feuil1.Range("C2:" & Feuil1.Range("C65536").End(xlUp).Address)
    If X.Value = "X" Then
        X.Offset(0, -2).Resize(1, 3).Copy Feuil2.Range("A65536").End(xlUp).Offset(1, 0)
        X.Value = "P"
    End If
Next
End Sub
Edit : Bonjour Skoobi
 

Fichiers joints

Greutof

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bonjour,

Mettre un bouton sur la feuille 1 et implémenter le code suivant dans la feuille 1 :
Code:
Private Sub CommandButton1_Click()
    For Each c In Range(Range("C2"), Range("C2").End(xlDown))
        If UCase(c.Value) = "X" Then
            Do
                If Worksheets(2).Range("A1").Offset(i, 0).Value <> "" Then i = i + 1
            Loop Until Worksheets(2).Range("A1").Offset(i, 0).Value = ""
        Worksheets(2).Range("A1").Offset(i, 0).Value = c.Offset(0, -2).Value
        Worksheets(2).Range("B1").Offset(i, 0).Value = c.Offset(0, -1).Value
        Worksheets(2).Range("C1").Offset(i, 0).Value = c.Value
        c.Value = "P"
        End If
    Next
End Sub
On peut faire plus élégant, mais ça fonctionne bien.
 

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bonsoir,
Merci de vos différentes réponses.... Merci beaucoup....
Je vais analyser et 'tenter' de comprendre chaque solution proposée .....

Je vous tiendrai au courant...
Bien cordialement
 

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Message à Skoobi
Private Sub CommandButton1_Click()
With Range("C2:C" & [C65536].End(xlUp).Row)
Set Trouve = .Find("X", LookIn:=xlValues, lookat:=xlWhole)
If Not Trouve Is Nothing Then
firstAddress = Trouve.Address
Do
Range("A" & Trouve.Row & ":C" & Trouve.Row).Copy Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0)
Trouve.Value = "P"
Set Trouve = .FindNext(Trouve)
Loop While Not Trouve Is Nothing
End If
End With
Sheets("Feuil2").Activate
End Sub

Merci pour cette demo du 'find' :)
Je ne souhaite pas blesser les autres intervenants à qui je dis merci encore....

petite question.... avec ce petit problème :
Avez-vous une formule tout aussi miracle pour passer de feuil1 à feuil2
et de feuil2 à feuil1


Feuil1

clé test1 resultat1 test2 resultat2 test3 resultat3
125 couleur marron aspect lisse
126 couleur clanc film gras
127 aspect rugueux couleur blanc liquide oui


Feuil2
clé test resultat
125 couleur marron
125 aspect lisse
126 couleur clanc
126 film gras
127 aspect rugueux
127 couleur blanc
127 liquide oui

Cordialement et ùerci de vos réponses
 

skoobi

XLDnaute Barbatruc
Re : Extraction de données sous VBA

Re,

Avez-vous une formule tout aussi miracle pour passer de feuil1 à feuil2
et de feuil2 à feuil1

Feuil1
clé test1 resultat1 test2 resultat2 test3 resultat3
125 couleur marron aspect lisse
126 couleur clanc film gras
127 aspect rugueux couleur blanc liquide oui

Feuil2
clé test resultat
125 couleur marron
125 aspect lisse
126 couleur clanc
126 film gras
127 aspect rugueux
127 couleur blanc
127 liquide oui
:confused::confused: c'est-à-dire? Compléter une feuille par rapport à l'autre si les données manque?
 

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bonjour,

Je pense que te joindre un fichier sera plus parlant. En fait je cherche à réaliser et comprendre le fonctionnement :)) sur les deux possibilités :

1 cas de figure
- je dispose d'une feuil1 et par un bouton je souhaite obtenir la présentation des données comme indiqué en feuil2

2 cas de figure
- je dispose d'une feuil2 et par un bouton, je souhaite obtenir la présentation des données comme indiqué sur feuil1.

Merci beaucoup de ton aide et temps passé,
Cordialement
 

Fichiers joints

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bonjour,
La taille maximum du jeu de police de caractères de cette fenêtre n'est pas suffisamment grande pour te dire combien je te remercie de cette rapidité dans ta réponse et en plus de constater que cela correspond tout à fait à ce que je cherchais....
Cela va s'avérer très utile pour travailler des données issues d'AS400 via Excel.

Merci encore et désolé à toi Skoobi d'avoir omis de signaler l'ouverture de ma nouvelle discussion.

Cordialement
 

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Re-bonjour Catice,

Je pense que j'ai trop vite sauté de joie avec ton fichier exemple.....

En l'adaptant à mes données 'vraies', il semblearit que si colonne 'numérique' ou pas, cela pose des petits soucis....

Je t'adresse un extrait pour savoir si tu peux apporter une solution..

D'avance un très grand merci,

Cordialement
 

Fichiers joints

Catrice

XLDnaute Barbatruc
Re : Extraction de données sous VBA

Re,

Je ne vois pas le probleme.
Peux tu montrer ce que tu attends en final ?
 
Dernière édition:

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bonjour Catice,

Merci de ton aide...

Je t'ai mis dans "Résulat2" ce que j'aimerais obtenir depuis "Feuil2" en cliquant le bouton.

Explication : Les données pour 1877 se trouvent dans Feuil2 en colonne, le but étant de les placer en lignes dans Résultat2 .... idem pour le reste de la liste de qualité...

(Si possible la réciproque sur l'autre cas de figure où on dispose de données en lignes et qu'on souhaite les placer en colonnes, cas Feuil1 avec Résultat1).

Bon courage et @+
 

Fichiers joints

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bonjour,

Voir dans le fichier joint, Feuil2 la macro parametrable qui devrait faire ce que tu souhaites.
Pour la methode inversse, à suivre ...
Merci beaucoup Catrice de ton intervention et solution apportée.....
Je vais appliquer 'ces paramètres' à mes datas et te tiebdrai au courant...

Quel talent ! Bravo ..

Cordialement et encore bien merci !
 

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bravo Catrice, c'est EXACTEMENT ce que je recherchais......
Bravo et bien merci....

Juste entre deux, pour le prog qui permet la réciproque..... mais rien ne presse....

Bien cordialement et encore Bravo !
 

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bonjour,

Voir dans le fichier joint, Feuil2 la macro parametrable qui devrait faire ce que tu souhaites.
Pour la methode inverse, à suivre ...
Bonsoir Catrice,

Après cette version 'magique' permettant de basculer une présentation de colonnes (feuil2) en lignes (résultat2), je voudrais savoir si tu avais pu trouver une solution permettant l'inverse.... partir d'une présentation comme résultat2 et obetnir Feuil2.

Bien cordialement et merci de ton aide

ps : fichier joint
 

Fichiers joints

Dernière édition:

joseph-53

XLDnaute Nouveau
Re : Extraction de données sous VBA

Bonjour,


La version dans mon Post #16 fontionne dans les 2 sens ....
Désolé Catrice, je pensais avoir laissé le message pour te dire que je m'étais aperçu par la suite que ton post#16 marchait bien dans les 2 sens....

Bonne soirée et @+ sur Excel-Download
 

Discussions similaires


Haut Bas