Début en VBA

Résolu
Bonjour,

je débute en vba sur excel.
Je viens de modifier un code que j'ai trouvé et essayer de comprendre.
Tout va bien sauf une chose que je n'arrive pas a modifier

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, x As Integer
    If Target.Address = "$E$6" Then
        Application.EnableEvents = False
        x = 2
        Range("A2:C4000").ClearContents
        With ThisWorkbook.Worksheets("Feuil1")
            For i = 2 To .Range("B5").End(xlDown).Row
                If Range("E6").Value = .Range("A" & i).Value Then
                    Range("A" & x).Value = .Range("C" & i).Value
                    Range("B" & x).Value = .Range("B" & i).Value
                    Range("C" & x).Value = .Range("E" & i).Value
                    x = x + 1
                End If
            Next i
        End With
        Application.EnableEvents = True
    End If
End Sub


Je n'arrive pas à modifier la position de ma case de choix (ici $E$6)
Si je deplace ma cellule sur ma feuille excel et que je modifie le code par la bonne ref, ca ne marche plus !! Je ne comprends pas.
Une autre question à quoi corresponds la cellule B5 dans "For i =2 To .Range("B5"...., je l'ai modifiée à plusieurs reprise mais pas de changement dans le résultat

Pour le reste c'est ton bon, j'ai compris , ca fonctionne et correspond à ce que j'aurais besoin avec adaptation.

Merci de votre aide
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

  1. Contributeur
    Bonjour,

    Si je deplace ma cellule sur ma feuille excel
    Si tu veux changer ta cellule tu peux la nommer par exemple "mon_choix", puis tu peux ensuite l'utiliser ainsi
        If Target.Address = Range("mon_choix").Address Then
    


    à quoi corresponds la cellule B5
    Cette cellule est utilisée pour chercher la cellule vide dans la colonne B après B5
    Je te déconseille cette formule car si tu as des lignes vides tu vas t'arrêter, je préfère
                For i = 2 To .Cells(Rows.Count, "B").End(xlUp).Row
    

    qui utilises la recherche par le bas de la feuille.
    1
    1. Parfait, ca fonctionne
      En plus , plus facile pour s'y retrouver en mettant des nom sur les plages de cellules

      Merci
      0