Afficher le contenue d'une cellule par rapport à une cellule préalablement trouv

Résolu
chrisandben Messages postés 3 Statut Membre -  
chrisandben Messages postés 3 Statut Membre -
Bonjour a toutes et à tous,

J'essaye de trouver la solution à ma question depuis plusieurs jours en vain, pourriez-vous m'aider, SVP.
J'explique mon problème dans mon code :

Dim Tablo
With Worksheets("a")
Tablo = .Range(.Cells(4, 10), .Cells(4, 18)) 'définition d'une plage avec qu'une cellule non vide dans l'onglet a
End With
With Worksheets("b")
For i = LBound(Tablo, 1) To UBound(Tablo, 1)
For j = LBound(Tablo, 2) To UBound(Tablo, 2)
If Tablo(i, j) <> "" Then 'trouver la cellule non vide dans l'onglet a
.Cells(2 + i, 7 + j) = Tablo(i, j) 'afficher dans l'onglet b le contenu de la cellule trouvée
.Cells(2 + i, 4 + j) = Tablo(i, j).cel.Offset(rowoffset:=-2, columnoffset:=0).Value ' et la je voudrais avoir le contenu de la cellule qui se trouve 2 lignes au dessus de la cellule préalablement trouvée, mais j'ai un erreur : objet requis
End If
Next j
Next i
End With


Merci d'avance pour votre aide !

2 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour BenandChris, bonjour le forum,

    Peut-être comme ça :
    Public Sub Macro1()
    Dim Tablo
    With Worksheets("a")
        Tablo = .Range(.Cells(4, 10), .Cells(4, 18)) 'définition d'une plage avec qu'une cellule non vide dans l'onglet a
    End With
    With Worksheets("b")
        For i = LBound(Tablo, 1) To UBound(Tablo, 1)
            For j = LBound(Tablo, 2) To UBound(Tablo, 2)
                If Tablo(i, j) <> "" Then 'trouver la cellule non vide dans l'onglet a
                    .Cells(2 + i, 7 + j) = Tablo(i, j) 'afficher dans l'onglet b le contenu de la cellule trouvée
                    .Cells(2 + i, 4 + j) = Tablo(i - 2, j)
                    Exit Sub
                End If
            Next j
        Next i
    End With
    End Sub

    1
    1. chrisandben Messages postés 3 Statut Membre
       
      Bonjour ThauTheme,

      D'abord merci pour ta réponse.

      J'ai corrigé mon code, mais j'ai un nouveau message d'erreur toujours au même endroit : l'indice n'appartient pas à la sélection.

      Ca veux peut être dire que la nouvelle cellule sort de ma plage tablo ?
      0
  2. ThauTheme Messages postés 1564 Statut Membre 160
     
    Essaie comme ça :
    Sub Macro1()
    Dim PL As Range
    Dim R As Range
    
    With Worksheets("a")
        Set PL = .Range(.Cells(4, 10), .Cells(4, 18))
    End With
    Set R = PL.SpecialCells(xlCellTypeConstants)
    If Not R Is Nothing Then
        With Worksheets("b")
            .Cells(2 + i, 7 + j) = R.Value
            .Cells(2 + i, 4 + j) = R.Offset(-2, 0).Value
        End With
    End If
    End Sub

    1
    1. chrisandben Messages postés 3 Statut Membre
       
      JE CROIS QUE CA MARCHE !!!!!!!

      Merci infiniment ThauTheme, bis !
      0