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
 

Pièces jointes

  • Classeur1.xls
    24.5 KB · Affichages: 97
  • Classeur1.xls
    24.5 KB · Affichages: 98
  • Classeur1.xls
    24.5 KB · Affichages: 100

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

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
 

Pièces jointes

  • skoobi.xls
    17.5 KB · Affichages: 63
  • skoobi.xls
    17.5 KB · Affichages: 66
  • skoobi.xls
    17.5 KB · Affichages: 69

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
 

Pièces jointes

  • test col-ligne.xls
    43.5 KB · Affichages: 116
  • test col-ligne.xls
    43.5 KB · Affichages: 125
  • test col-ligne.xls
    43.5 KB · Affichages: 127

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 @+
 

Pièces jointes

  • test col-ligne.xls
    42 KB · Affichages: 203
  • test col-ligne.xls
    42 KB · Affichages: 204
  • test col-ligne.xls
    42 KB · Affichages: 160

Catrice

XLDnaute Barbatruc
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 ...
 

Pièces jointes

  • test col-ligne.zip
    14.4 KB · Affichages: 51
  • test col-ligne.zip
    14.4 KB · Affichages: 49
  • test col-ligne.zip
    14.4 KB · Affichages: 56
Dernière édition:

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 !
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 913
Membres
101 837
dernier inscrit
Ugo