Range avec cell + variable

bonjour, je suis entrain de bloquer sur un code levoici au complet:

Sub efface_cellule()

       'Déclaration des variables
       Dim billard As Integer, numero_ligne As Integer

       'Valeurs des variables
       billard = Cells(1, 7)
       numero_ligne = Range("U5")

    If numero_ligne > 0 Then  'SI CONDITION VRAIE

            Range("T5").ClearContents

    Else 'SI CONDITION FAUSSE

    End If

End Sub

en fait si je met :

Range(Cells(numero_ligne, 20)).ClearContents

il me met un message d'erreur mais,

si je met :

Range("T5").ClearContents

c est bon

le but étant que si je marque un chiffre en "U", il efface le chiffre en "T" de la même ligne ....

j espere avoir ete clair merci de bien vouloir m'aider

Bonjour,

"cells(numero_ligne,20).clearcontents" ne convient pas ?

P.

Bonjour

On comprendrait mieux si tu joignais ton fichier...

Bye !

merci pour ta repone, non cela ne vas pas il me met un message d erreur


voici le fichier

75essaie-table2.xlsm (24.60 Ko)

Bonjour,

le but étant que si je marque un chiffre en "U", il efface le chiffre en "T" de la même ligne ....

Cette action automatique nécessite une évènementielle à placer dans le module de la feuille concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 21 Then
        Application.EnableEvents = False
        Target.Offset(, -1).ClearContents
        Application.EnableEvents = True
    End If
End Sub

Cordialement.

NB- Là, ça efface T dès que tu mets quelque chose en U ! Si cela ne doit effacer que lorsque tu mets un chiffre (un seul caractère de 0 à 9 ?) Il faut alors tester la valeur tapée avant d'effacer...

Par exemple :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 21 Then
        If Target.Value Like "[0-9]" Then
            Application.EnableEvents = False
            Target.Offset(, -1).ClearContents
            Application.EnableEvents = True
        End If
    End If
End Sub

Là ça n'effacera que si tu tapes un chiffre de 0 à 9 ! Si tu tapes A ou ba ou 21 ça n'effacera rien !

re,

ceci fonctionnerait mieux ...

numero_ligne = Range("U5").Row

If numero_ligne > 0 Then 'SI CONDITION VRAIE

Cells(numero_ligne, "T").ClearContents

merci a vous tous pour vos reponse,

j ai modifier les code avec ce que vous m avez donner mais malheureusement ca ne marche pas, je n ai pus de messagge d'errreur, mais il n'efface pas les cellules...

je vous joins mon fichier pour que vous puissiez voir

75essaie-table2.xlsm (23.93 Ko)

Il ne peut y avoir qu'une procédure Worksheet_Change pour une même feuille !

L'ensemble de ton code est bien trop confus pour qu'on puisse déduire de façon sûre ce qui doit être obtenu selon quelles conditions...


Voilà ta procédure Change réécrite de façon rationnelle (outre que ton code est très mal indenté, son contenu est plutôt surréaliste ) et intégrant l'effacement demandé :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row < 5 Then Exit Sub
    If Target.Column = 20 Then
        commentaires_notes
    ElseIf Target.Column = 21 Then
        If Target.Value <> "" Then
            Application.EnableEvents = False
            Target.Offset(, -1).ClearContents
            Application.EnableEvents = True
        End If
    End If
End Sub

merci beaucoup ca marche nikel

Rechercher des sujets similaires à "range variable"