VBA cellule egale a une autre

Résolu/Fermé
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 - 5 mars 2014 à 09:00
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 - 5 mars 2014 à 13:04
Bonjour a tous,

Je suis debutant sur excel et VBA et j'aimerai une chose qui me parait simple mais je n'y arrive pas.

J'aimerai que sur ma feuille de calcul une cellule designee soit egale a une autre cellule.

Cependant, je veux que le changement se fasse automatiquement dans la seconde cellule lorsque le resultat de la premiere change.

J'espere que c'est assez clair. Merci par avance pour votre aide.

PS : desole pour les fautes et accent, je suis avec un clavier anglais.

2 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
5 mars 2014 à 12:30
Solution bis

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim Addr As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("Z7:Z10")) Is Nothing Then
For Each Cel In Range("Z7:Z10")
If Cel <> "" Then Addr = Cel.Address
Next Cel
If Addr <> "" Then
Range("Z11") = Range(Addr)
Else
Range("Z11") = ""
End If
End If
End Sub

A+
1
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 1
5 mars 2014 à 12:41
Nickel c'est ce que je voulais Merci beaucoup.

Pourrais tu prendre quelques minutes pour m'expliquer cette partie stp

If Not Intersect(Target, Range("Z7:Z10")) Is Nothing Then
For Each Cel In Range("Z7:Z10")
If Cel <> "" Then Addr = Cel.Address

Dans l'optique d'en savoir plus d'apprendre et de comprendre aussi merci
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
5 mars 2014 à 12:59
If Not Intersect(Target, Range("Z7:Z10")) Is Nothing Then
est équivalent à "si la cellule modifiée appartient à la plage Z7:Z10"

For Each Cel In Range("Z7:Z10")
If Cel <> "" Then Addr = Cel.Address
est équivalent à "balaye chaque cellule de la plage Z7:Z10 et, si la cellule n'est pas vide, affecte son adresse à la variable Addr".
De cette manière, Addr correspond à l'adresse de la dernière cellule renseignée.

A+
0
Abd3l0u Messages postés 21 Date d'inscription jeudi 27 février 2014 Statut Membre Dernière intervention 26 mars 2014 1
5 mars 2014 à 13:04
Merci beaucoup =D
0