Macro extraction de données EXCEL

Fermé
kriss - 13 juin 2008 à 15:28
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 3 juil. 2008 à 16:13
Bonjour,
je débute dans la programmation sous visual basic et je voudrais creer une macro.
ma feuile excel se présente de la maniere suivante : (en résumé)
COL_A COL_B COL_C COLONE_D

FF05200 oui RXCD55GHEF593 12/07/2007
FF05326 oui AG532 10/05/2006
FF89530 non AR589 05/06/2008
FF45200 oui no agreement 13/09/2004

ce qui m'interesse c'est uniquement les colones A et C.
Je voudrai extraire toutes les cases qui ont un code a 13chiffres de la colone C et qui me prene luniquement la colone A qui va avec et qui me la copie sur un nouvel onglet.
en gros ici il me faudrai come résultat : COL_A COL_C
FF05200 RXCD55GHEF593
Comment faire?ais-je était assez clair?
merci de votre aide
COrdialement
A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 718
14 juin 2008 à 10:21
bonjour

Tu peux faire une macro de ce type
Public Sub sel_copie()
Dim w1 As Worksheet
Dim w2 As Worksheet
Dim l1 As Long
Dim l2 As Long
Set w1 = Worksheets("Feuil1")   ' nom de l'onglet base
Set w2 = Worksheets("Feuil2")   ' nom de l'onglet copie
w2.UsedRange.Rows.Delete (xlShiftUp) ' suppression données onglet copie
For l1 = 1 To w1.Cells.SpecialCells(xlCellTypeLastCell).Row
    If Len(Cells(l1, 3).Value) = 13 Then    ' taille colonne C
        l2 = w2.Cells.SpecialCells(xlCellTypeLastCell).Row + 1
        w2.Cells(l2, 1).Value = w1.Cells(l1, 1).Value
        w2.Cells(l2, 3).Value = w1.Cells(l1, 3).Value
    End If
Next l1
End Sub

Tu adapte le nom de tes feuilles à ceux de ton classeur
0
désolé de répondre un peu tard
mais merci encore pour votre aide
ca à bien fonctionner.
par contre j'aurai d'autres questions si jpeux me permettre de vous les poser concernant de la programmation sous VB
mais cette fois-ci c'est un peu plus complexe.
jpeux vous la poser?
cordialement
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 718
18 juin 2008 à 23:53
bonjour

Les mauvaises questions sont celles qui ne sont jamais posées alors tu peux poser la tienne si tu veux qu'elle soit bonne !

à bientôt
0
Suite a la macro ecrite precedemment j'ai un classeur avec les 2colones que j'ai pu tirer.j'ai donc un fichier de la forme suivante : (fichier pour le mois de janvier2008)

FF15251 RTY54UIPE152A
FF85400 RVBFCHN456PED
...
..

et aisni de suite.
J'ai un autre fichier de la forme suivante qui recense tous les co
colone_ATTRIBUTS: colone_ janvier : colone_fervrier : colone_mars : avril : mai : juin :

FF01000
FF01001
FF01002
FF01800
FF10000
FF85000
..
..
..
et le but serait de savoir combien de codes a 13chiffres commencant par le R a chaque fois, a été donné aux attributs.en fonction du mois.(en creant une macro)
en gros dans ce cas, il serait écrit 1 dans la colone janvier et sur la ligne correspondant a l'attribut FF15251
ais-je était assez clair ou voulez encore plus de précision?
mais merci encore de me consacre du temps c tres gentil de votre part
cordialement
0
en faite pour revenir au code que vous m'avez donné au début de cette conversation, je voudrai effectuer un petit changement.votre code fonctionnait tres bien.
Maintenant au lieu de considérer la longueur du code a 13caractère, je voudrai créer un autre code VBA qui permettrait de détecter le premier caractère qui est la lettre "R".
Car le problème de la longueur (qui est de 13),il suffit q'une persone se trompe et oubli un caractere que la macro ne tient pas compte de la ligne.
Donc sachant que ce code a 13caractères commence forcémentpar la lettre R, serait-il possible de créér un code sous VBA permettant de faire une recherche dans une colonne, regardant à chaque ligne la première lettre de la case, et de copier l'autre colone qui va avec.
merci pour aide et votre temps.
cordialement
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 718
3 juil. 2008 à 16:13
bonjour

Pour cela il suffit de changer cette ligne
    If Left(Cells(l1, 3).Value,1) = "R" Then    ' début colonne C
0