[VBA] Pourquoi la cellule ne se sélectionne pas ?

Bonjour à tous !

Voilà j'ai un code qui ne fonctionne pas, et je ne comprends pas pourquoi... Le voici :

Private TEST As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If TEST = True Then Exit Sub
If Application.Intersect(Target, Columns(7)) Is Nothing Then Exit Sub
TEST = True
If MsgBox("Do you wish to run the macro ?", vbYesNo, "Confirmation request") = vbYes Then

    Dim j As Integer

    j = Sheets("Sub product items details").Range("A1048576").End(xlUp).Row

    For i = 1 To j

    If Sheets("Sub product items details").Cells(i, 2) = Target.Value Then
    Sheets("Sub product items details").Cells(i, 2).Select
    Selection.Offset(1, -1).Select
    Selection.EntireRow.Select
    Range(Selection, Selection.End(xlDown)).Select

    End If
    Next i

End If
TEST = False
End Sub

La ligne qui bloque est la suivante :

Sheets("Sub product items details").Cells(i, 2).Select

Je trouve ça plutôt étonnant puisque c'est un simple select... Dans Debug, il reconnaît le i comme la bonne ligne. J'ai essayé :

MsgBox Sheets("Sub product items details").Cells(i, 2).Address

et il me trouve la bonne adresse. Mais il veut pas sélectionner la cellule. Pourquoi ?

Merci d'avance

bonjour,

essaie

Sheets("Sub product items details").activate
Sheets("Sub product items details").Cells(i, 2).Select

Merci beaucoup, ça a bien débloqué cette partie de la macro !

Sauf que maintenant, elle bloque sur :

Range(Selection, Selection.End(xlDown)).Select

Pourquoi ?

Je comprends pas... c'est pourtant simple !

PS: désolée de répondre si tardivement, j'ai dû travailler sur autre chose jusqu'à maintenant.

Par ailleurs, merci d'avoir répondu si vite

[EDIT 15.09.2015, 17:35] Le message d'erreur dit "Run-time error '1004': Method 'Range' of object '_Worksheet' failed"

ça aidera peut-être à comprendre l'erreur...

Merci.

cmarchonge a écrit :

Merci beaucoup, ça a bien débloqué cette partie de la macro !

Sauf que maintenant, elle bloque sur :

Range(Selection, Selection.End(xlDown)).Select

Pourquoi ?

Je comprends pas... c'est pourtant simple !

PS: désolée de répondre si tardivement, j'ai dû travailler sur autre chose jusqu'à maintenant.

Par ailleurs, merci d'avoir répondu si vite

[EDIT 15.09.2015, 17:35] Le message d'erreur dit "Run-time error '1004': Method 'Range' of object '_Worksheet' failed"

ça aidera peut-être à comprendre l'erreur...

Merci.

que cherches-tu à faire avec cette instruction ?

J'aimerais sélectionner la ligne (qui est déjà sélectionnée) ainsi que toutes celles en dessous jusqu'au prochain blanc dans la colonne A.

En fait, c'est le code qui correspond à [Ctrl] + [Shift] + [Flèche vers le bas].

Le but est de copier les lignes et de les coller dans un autre onglet...

Personne n'a la solution ? J'suis complètement bloquée :/

Bonjour,

Évite autant que possible d'utiliser les Select, Selection et Activate.

Voici un code pour copier la plage dans la feuille "Feuil3".

Private Sub Worksheet_Change(ByVal Target As Range)
Dim j As Integer
    If Not Application.Intersect(Target, Columns(7)) Is Nothing Then
        If MsgBox("Do you wish to run the macro ?", vbYesNo, "Confirmation request") = vbYes Then
            With Sheets("Sub product items details")
                j = .Range("A1048576").End(xlUp).Row
                For i = 1 To j
                    If .Cells(i, 2) = Target.Value Then
                        .Range(.Rows(i + 1), .Rows(i + 1).End(xlDown)).Copy Sheets("Feuil3").Range("A1")
                    End If
                Next i
            End With
        End If
    End If
End Sub

A+

Wahoou magnifique !! Merci beaucoup frangy ! Ca fonctionne parfaitement !

Très bonne journée

Rechercher des sujets similaires à "vba pourquoi selectionne pas"