Début en VBA

Résolu/Fermé
REGIS6460 Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 24 mars 2018 - Modifié le 19 mars 2018 à 20:34
REGIS6460 Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 24 mars 2018 - 20 mars 2018 à 22:17
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

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 704
19 mars 2018 à 23:45
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
REGIS6460 Messages postés 6 Date d'inscription lundi 19 mars 2018 Statut Membre Dernière intervention 24 mars 2018
20 mars 2018 à 22:17
Parfait, ca fonctionne
En plus , plus facile pour s'y retrouver en mettant des nom sur les plages de cellules

Merci
0