none
Extraire une partie de l'Info de la colonne voisine RRS feed

  • Question

  • Bonjour a tous,

    Avec le code ci-bas j'essai d'extraire de l'information contenue dans la colonne B, au fait est une sequence qui commence

    par  TAG00000000001 jusqu'a TAG99999999999 (toujours 14 characteres, toujours a la meme place mais l'information n'est pas necessairement toujour dans la cellule)

    Si l'info est la je besoin de la mettre sur la colonne A, Sinon je met le resultat de la cellule precedent de la colonne A. 

    Merci de votre aide.

    Dante

    Ex.:

    Colonne B

    OTHER99XXTHINGSXXX

    TAG00000056321 XXXX

    XXXTTTDESCRIPT00000

    TAG00009852321 XXXX

    Code

    ' Ajout de nouvelle colonne

        Columns("a:a").Select

        Selection.Insert Shift:=xlToRight

        Selection.ColumnWidth = 18.29

    ‘Ajout du Nom de la colonne A

    Range("A1").Select

            ActiveCell.FormulaR1C1 = "Description Tag"

        Range("A2").Select

     ‘met dans la colonne A l'information recherché de la colonne “B”

    Set plage = Range("B2:b" & Range("B65536").End(xlUp).Row)

    For Each C In plage

        If Left(plage, 5) = "TAG00" Or Left(plage, 5) = "TAG99" Then

            ActiveCell.Offset(0, 0).Value = Left(plage, 14)

            Else

            If Range("A" & C.Row) = "" Then Range("A" & C.Row) = Range("A" & C.Row - 1)

        End If

    Next

    lundi 31 janvier 2011 15:23

Réponses

  • ok, alors voici la correction,

    Sub Macro1()
    ' Ajout de nouvelle colonne
     With Columns("a:a")
     .Insert Shift:=xlToRight
     .ColumnWidth = 18.29
     End With

    Set plage = Range("B2:b" & Range("B65536").End(xlUp).Row)

    'Ajout du Nom de la colonne A
    Range("A1") = "Description Tag"

    ' met dans la colonne A l'information recherché de la colonne “B”
    For Each c In plage
        If Left(c, 5) = "TAG00" Or Left(c, 5) = "TAG99" Then
           Range("A" & c.Row) = Left(c, 14)
        Else
           If Range("A" & c.Row) = "" Then Range("A" & c.Row) = Range("A" & c.Row - 1)
       End If
    Next
    End Sub

    isabelle

    Le 2011-01-31 11:49, PointMicro a écrit :

    Bonjour Isabelle,

    Question 1, Oui elle peut reprendre le titre de la colonne

    Question 2, Au depart sont dans la colonne A mais je veux q'elle se retrouve sur la colonne B, ce pour cela que j'ajoute une nouvelle colonne.

    Merci



    Dante

    • Marqué comme réponse PointMicro lundi 31 janvier 2011 17:09
    lundi 31 janvier 2011 16:52

Toutes les réponses

  • bonjour Dante,

    dans ton exemple le premier de la liste ne commence pas par "TAG00" ou "TAG99"  alors
    en cellule A2 c'est le titre de la colonne qui est reprit, est ce que c'est bien ça que tu veut ?

    et aussi au départ est ce que les données sont en colonne A ou en colonne B ?

    Sub Macro1()
    Set plage = Range("B2:b" & Range("B65536").End(xlUp).Row)

    ' Ajout de nouvelle colonne
     With Columns("a:a")
     .Insert Shift:=xlToRight
     .ColumnWidth = 18.29
     End With

    'Ajout du Nom de la colonne A
    Range("A1") = "Description Tag"

    ' met dans la colonne A l'information recherché de la colonne “B”
    For Each c In plage
        If Left(c, 5) = "TAG00" Or Left(c, 5) = "TAG99" Then
           Range("A" & c.Row) = Left(c, 14)
        Else
           If Range("A" & c.Row) = "" Then Range("A" & c.Row) = Range("A" & c.Row - 1)
       End If
    Next
    End Sub

    isabelle

    Le 2011-01-31 10:23, PointMicro a écrit :



    Bonjour a tous,

    Avec le code ci-bas j'essai d'extraire de l'information contenue dans la colonne B, au fait est une sequence qui commence

    par  TAG00000000001 jusqu'a TAG99999999999 (toujours 14 characteres, toujours a la meme place mais l'information n'est pas necessairement toujour dans la cellule)

    Si l'info est la je besoin de la mettre sur la colonne A, Sinon je met le resultat de la cellule precedent de la colonne A.



    Merci de votre aide.

    Dante

    Ex.:

    Colonne B

    OTHER99XXTHINGSXXX

    TAG00000056321 XXXX

    XXXTTTDESCRIPT00000

    TAG00009852321 XXXX



    Code

    ' Ajout de nouvelle colonne

        Columns("a:a").Select

        Selection.Insert Shift:=xlToRight

        Selection.ColumnWidth = 18.29

    ‘Ajout du Nom de la colonne A

    Range("A1").Select

            ActiveCell.FormulaR1C1 = "Description Tag"

        Range("A2").Select

      ‘met dans la colonne A l'information recherché de la colonne “B”

    Set plage = Range("B2:b"&  Range("B65536").End(xlUp).Row)

    For Each C In plage

        If Left(plage, 5) = "TAG00" Or Left(plage, 5) = "TAG99" Then

            ActiveCell.Offset(0, 0).Value = Left(plage, 14)

            Else

            If Range("A"&  C.Row) = "" Then Range("A"&  C.Row) = Range("A"&  C.Row - 1)

        End If

    Next

    lundi 31 janvier 2011 16:31
  • Bonjour Isabelle,

    Question 1, Oui elle peut reprendre le titre de la colonne

    Question 2, Au depart sont dans la colonne A mais je veux q'elle se retrouve sur la colonne B, ce pour cela que j'ajoute une nouvelle colonne.

    Merci

     

    Dante

    lundi 31 janvier 2011 16:49
  • ok, alors voici la correction,

    Sub Macro1()
    ' Ajout de nouvelle colonne
     With Columns("a:a")
     .Insert Shift:=xlToRight
     .ColumnWidth = 18.29
     End With

    Set plage = Range("B2:b" & Range("B65536").End(xlUp).Row)

    'Ajout du Nom de la colonne A
    Range("A1") = "Description Tag"

    ' met dans la colonne A l'information recherché de la colonne “B”
    For Each c In plage
        If Left(c, 5) = "TAG00" Or Left(c, 5) = "TAG99" Then
           Range("A" & c.Row) = Left(c, 14)
        Else
           If Range("A" & c.Row) = "" Then Range("A" & c.Row) = Range("A" & c.Row - 1)
       End If
    Next
    End Sub

    isabelle

    Le 2011-01-31 11:49, PointMicro a écrit :

    Bonjour Isabelle,

    Question 1, Oui elle peut reprendre le titre de la colonne

    Question 2, Au depart sont dans la colonne A mais je veux q'elle se retrouve sur la colonne B, ce pour cela que j'ajoute une nouvelle colonne.

    Merci



    Dante

    • Marqué comme réponse PointMicro lundi 31 janvier 2011 17:09
    lundi 31 janvier 2011 16:52
  • Comment vous dites en Europe, Ca marche Nickel!

    Merci encore Isabelle et au plaisir de ce re-ecrire

    Dante

     

    lundi 31 janvier 2011 17:06
  • Bonjour

    Comment vous dites en Europe,

    C'est raté. mdr


    A+

    lundi 31 janvier 2011 17:48
  • sauf que j'habite du même coté de la marre que toi Dante ;-)
    isabelle du québec

    Le 2011-01-31 12:06, PointMicro a écrit :

    Comment vous dites en Europe, Ca marche Nickel!

    Merci encore Isabelle et au plaisir de ce re-ecrire

    Dante


    lundi 31 janvier 2011 18:05