Loop pour localize tableau par tableau

Bonjour,

J'utilise worksheet("Sheet1").Cells.Find("Salaire").Cells.Column et worksheet("Sheet1").Cells.Find("Salaire").Cells.Row

73exp.xlsx (8.09 Ko)

avec une loop pour localise le premiere tableau pour faire quelque operation sauf quand je veux localiser le 2eme tableau worksheet("Sheet1").Cells.Find("Salaire").Cells.Column cette ligne trouve toujours le premier tableau sauf que je veux quel trouve le 2em puis 3eme ect ect ... c'est quoi la meilleur facon pour le faire ?

Bonjour

essaie d'adapter quelque chose comme ceci

With Worksheets(1).Range("a:a")
    Set c = .Find("ce_que_je_cherche", lookin:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            'code xxxx
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

Ca marche pas, jarrive a trouver que la premiere address mais pas la 2eme ni 3eme ....

Sub test()

With Worksheets(1).Range("E:E")
    Set c = .Find("Salaire", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            MsgBox c.Address
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub
69exp.xlsm (13.73 Ko)

ou mieux ...

Sub test()

With Worksheets(1).Range("E:E")
    Set c = .Find("Salaire", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            MsgBox c.CurrentRegion.Address
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub
70exp.xlsm (13.84 Ko)

Ca marche merci beaucoup, j'ai une derniere question comment cree un range avec c.address cell address et row = c.End(xlDown).row ? exemple le premiere range va etre e3:e5 ?

Pas bien compris ! explique ce que tu veux faire ...

Tu peux définir ceci

dim plage as Range

puis

set plage = c.CurrentRegion.Address

Tu as donc une plage qui couvre le tableau...

c'est exactement ce que je cherche a faire sauf que jai message derror quand "Object variable or with block variable not set" meme avec set ca marche pas

CurrentRegion selection tous la table sauf que moi je veux seulement selectioner range du salaire avec les valeurs E3:E5

c'est exactement ce que je cherche a faire sauf que jai message derror quand "Object variable or with block variable not set" meme avec set ca marche pas

donne moi ton code car là c'est aller en aveugle !

voir page suivant pour la deuxième question ...

CurrentRegion selection tous la table sauf que moi je veux seulement selectioner range du salaire avec les valeurs E3:E5

Sub test()
Dim plage As Range

With Worksheets(1).Range("E:E")
    Set c = .Find("Salaire", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            Set plage = Range(c, c.End(xlDown))
            plage.Select
            MsgBox plage.Address
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With

End Sub
1exp.xlsm (14.26 Ko)

Desole voici ce que j'esssaye de faire :

row = c.End(xlDown).row

col = c.End(xlDown).Column

'Set Table = Range(c.currentregion.Address)

row_first = c.row

rng = Worksheets("Sheet1").Range(Cells(row_first + 1, col), Cells(row, col))

For Each cell In rng

If cell.Value > 0 Then

cell.Style = "Good"

Else

cell.Style = "Bad"

End If

Next cell

jai une error a For Each Cell in rng

Desole voici ce que j'esssaye de faire :

           row = c.End(xlDown).row
            col = c.End(xlDown).Column
            'Set Table = Range(c.currentregion.Address)
            row_first = c.row
            rng = Worksheets("Sheet1").Range(Cells(row_first + 1, col), Cells(row, col))
            For Each cell In rng
                If cell.Value > 0 Then
                    cell.Style = "Good"
                Else
                    cell.Style = "Bad"
                End If
            Next cell

jai une error a For Each Cell in rng

merci d'utiliser les balises code </> à ta disposition dans la réponse




col = c.End(xlDown).Column

équivaut à

col = c.Column



rng = Worksheets("Sheet1").Range(Cells(row_first + 1, col), Cells(row, col))

déclare

dim rng as Range

et ensuite

set rng = _________________



                If cell.Value > 0 Then
                    cell.Style = "Good"
                Else
                    cell.Style = "Bad"
                End If

pas compris ce que tu veux faire !

mais avant de poser des questions, télécharge le fichier que j'ai posté ci-dessus et dis ce que tu veux faire avec good et bad !

Rechercher des sujets similaires à "loop localize tableau"