Menu

Afficher le contenue d'une cellule par rapport à une cellule préalablement trouv [Résolu]

Messages postés
3
Date d'inscription
jeudi 3 janvier 2019
Dernière intervention
3 janvier 2019
-
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 !
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
4446
Date d'inscription
mardi 21 octobre 2014
Dernière intervention
17 janvier 2019
226
1
Merci
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

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 56117 internautes nous ont dit merci ce mois-ci

chrisandben
Messages postés
3
Date d'inscription
jeudi 3 janvier 2019
Dernière intervention
3 janvier 2019
-
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 ?
Commenter la réponse de ThauTheme
Messages postés
4446
Date d'inscription
mardi 21 octobre 2014
Dernière intervention
17 janvier 2019
226
1
Merci
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

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 56117 internautes nous ont dit merci ce mois-ci

chrisandben
Messages postés
3
Date d'inscription
jeudi 3 janvier 2019
Dernière intervention
3 janvier 2019
-
JE CROIS QUE CA MARCHE !!!!!!!

Merci infiniment ThauTheme, bis !
Commenter la réponse de ThauTheme