Identification cellules d'un tableau

Bonjour,

Je coince complet sur une manip que j'ai besoin de faire pour le boulot

J'ai un tableau de ce style (plus grand si complet)

              col_1  col_2 col_3 ... ... ...
ligne_1
ligne_2                X
ligne_3         X      X
...
...

Je souhaite faire un script qui me génère dans un autre onglet la liste des couples ligne/colonne qui ont des X.

L'exemple ci-dessus devrait générer un onglet avec

ligne_2    col_2
ligne_3    col_1
ligne_3    col_2

En classique Excel je n'ai rien trouvé qui me permettrai de faire ceci c'est pourquoi je m'oriente vers le vba mais je n'y connais absolument rien je l'avoue. Voila pourquoi je m'adresse à vous en ces temps de fêtes =)

Merci d'avance pour toute l'aide que vous apporterai

Cordialement

Stan

bonjour,

une proposition de solution

Sub aargh()
Set ws1 = Sheets("sheet1")
Set ws2 = Sheets("sheet2")
ls2 = 0
For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
 For j = 2 To ws1.Cells(1, Columns.Count).End(xlToLeft).Column
  If ws1.Cells(i, j) = "X" Then
   ls2 = ls2 + 1
   ws2.Cells(ls2, 1) = ws1.Cells(i, 1) & " " & ws1.Cells(1, j)
  End If
 Next j
Next i
End Sub
10stan.xlsm (16.41 Ko)

Bonjour à tous

Une variante.

Bye !

11essai.xlsm (15.70 Ko)

Et bien beau travail. Grand merci. ça à l'air de correspondre à ma demande.

Il me reste quelques adaptation à faire,

l’entête de colonne et de ligne n'est pas fixe, je dois retourner la valeur de cellule plutôt que ligne1 ou col2

j'ai aussi quelques restrictions à faire, toutes les lignes ne doivent pas être analysé, condition selon valeur d'une colonne

Mais j'ai ma base de départ et je vais essayer de moi même de faire le reste. Au pire, je repasserai par ici

Grand merci à vous 2.

Je vous souhaite de bonnes fêtes de fin d'année

Stan

Bonjour,

Bonjour à tous,

Une autre proposition, similaire à gmb.

Bonne fêtes de fin d'année.

Cdlt.

Option Explicit

Private Sub cmdConsolidate_Click()
Dim tbl, arr()
Dim lRow As Long, k As Long
Dim I As Long, J As Long

    Application.ScreenUpdating = False

    Feuil2.Cells(1).CurrentRegion.ClearContents
    tbl = Feuil1.Cells(4, 1).CurrentRegion.Value
    k = 0

    For I = 2 To UBound(tbl, 1)
        For J = 2 To UBound(tbl, 2)
            If UCase(tbl(I, J)) = "X" Then
                ReDim Preserve arr(2, k + 1)
                arr(0, k) = tbl(I, 1)
                arr(1, k) = tbl(1, J)
                k = k + 1
            End If
        Next J
    Next I

    With Feuil2
        If k > 0 Then .Cells(1).Resize(UBound(arr, 2), 2).Value = _
           Application.Transpose(arr)
        .Activate
    End With

    Erase arr(): Erase tbl

End Sub

Ben c'est niquel, j'ai fini d'adapter vos scripts à mes besoins, j'ai fait un mélange des solutions que vous m'avez proposez =)

J'ai ajouté 2/3 trucs nécessaires et maintenant ça roule..

Merci encore pour votre aide efficace et rapide

Stan

Rechercher des sujets similaires à "identification tableau"