Macro extraction de données EXCEL

kriss -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
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
Configuration: Windows 2000
Internet Explorer 6.0

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. kriss
       
      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
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. kriss
       
      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
    2. kriss
       
      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
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

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