Changement colonne adresse

Bonjour,

Range(xRgSel.Address).Value

Je voudrais récupérer la valeur de la colonne B de la même ligne ?

Pour l'exemple ma colonne reste toujours la R et la ligne change mais je voudrais récupérer la valeur de la colonne A met toujours la même ligne vue que j'utilise

Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRgSel As Range
Set xRg = Range("R2:R10")
Set xRgSel = Intersect(Target, xRg)

Bonjour,

Pour récupérer la valeur de la colonne B de la même ligne normalement :

VALEUR = Range("B" & Range(xRgSel.Address).Row).Value

Cdlt,

Merci super.

J'ai aussi ce soucis : vue que j'utilise le Private Sub Worksheet_Change(ByVal Target As Range) il ne détecte pas que ma valeur change tu aurais une idée ?

=SI(Feuil2!R9<Feuil2!W9;"Négatif";"Positif")

Bonjour,

Il me semble qu'un changement sur une feuille n'est considéré comme tel que si la donnée de la cellule change. Donc le résultat d'une formule change, la macro n'est pas déclenchée car la formule renseignée dans la formule n'est pas modifiée. C'est alors la valeur de la Feuil2 contenue dans la cellule R9 oui W9 qui doit être l'élément déclencheur.

Cdlt,

Oui j'avais bien compris mais l'élément déclencheur ne peut pas être un de c'est deux là je voulais savoir si on serais remplacer :

=SI(Feuil2!R9<Feuil2!W9;"Négatif";"Positif")

par du VBA pour que cela soit une valeur et plus une formule ?

Bonjour,

En VBA l'équivalent serait :

If Worksheets("Feuil2").Range("R9")<Worksheets("Feuil2").Range("W9") Then
    Worksheets("La feuille de destination").Range("La cellule de destination") = "Négatif"
    Else
    Worksheets("La feuille de destination").Range("La cellule de destination") = "Positif"
End If

Cdlt,

Merci c'est parfait par contre serait-il possible de le faire a grande échelle.

Par exemple de la R9 à R1000 et W9 à W1000 ? Sans dupliquer mon VBA 100 fois

Bonjour,

Oui bien sûr :

For i = 9 to 1000
    If Worksheets("Feuil2").Range("R" & i)<Worksheets("Feuil2").Range("W" & i) Then
        Worksheets("La feuille de destination").Range("La colonne de destination" & i) = "Négatif"
        Else
        Worksheets("La feuille de destination").Range("La colonne de destination" & i) = "Positif"
    End If
Next i

Si ça ne correspond pas merci de joindre un fichier représentatif.

Cdlt,

Oui cela fonctionne seul soucis, c'est que tout est retraiter. Si la valeur n'a pas changer rien ne devrais se passer la il remplacer les cellule mais si cela correspond déjà

Si c'est positif et que ca reste positif rien de dois se faire je veux que cela change juste au changement d'état parce que j'ai un mail automatique qui part au changement d'état et la ben c'est 1000 mails qui parte d'un coup pour rien surtout

Bonjour,

Avec un fichier et le résultat attendu ce serait beaucoup plus simple. Au vu des explications, ce que vous décrivez est conforme au code posté. A ce moment :

For i = 9 to 1000
    If Worksheets("Feuil2").Range("R" & i)<Worksheets("Feuil2").Range("W" & i) And Worksheets("La feuille de destination").Range("La colonne de destination" & i) = "Positif" Then
        Worksheets("La feuille de destination").Range("La colonne de destination" & i) = "Négatif"
        ElseIf Worksheets("Feuil2").Range("R" & i)>Worksheets("Feuil2").Range("W" & i) And Worksheets("La feuille de destination").Range("La colonne de destination" & i) = "Negatif"
        Worksheets("La feuille de destination").Range("La colonne de destination" & i) = "Positif"
    End If
Next i

Merci de poster un fichier représentatif, le besoin exact et le résultat attendu si cela ne correspond pas.

Cdlt,

Je ne serais pas vous fournir ce document mais mon code est :

For i = 1 To 2745
    If Worksheets("Feuil2").Range("R" & i) < Worksheets("Feuil2").Range("W" & i) Then
        Worksheets("Feuil1").Range("A" & i) = "Négatif"
        Else
        Worksheets("Feuil1").Range("A" & i) = "Positif"
    End If
Next i

du coup le votre à l'air bien mais apparemment ca pose problème au niveau du

ElseIf

Après si il faut vraiment je vais essayer de faire une version lite pour vous envoyer

Bonjour,

Ci-joint avec un test réalisé sur 3 lignes, si vous changez par exemple W1 en valeur inférieure a R1 alors un messagebox apparait, si c'est toujours supérieur, rien n'apparaît car aucune valeur n'est mise à jour :

Sub TEST()
Dim i%
For i = 1 To 2745
    If Worksheets("Feuil2").Range("R" & i) < Worksheets("Feuil2").Range("W" & i) And Worksheets("Feuil1").Range("A" & i) = "Positif" Then
        Worksheets("Feuil1").Range("A" & i) = "Négatif"
    ElseIf Worksheets("Feuil2").Range("R" & i) > Worksheets("Feuil2").Range("W" & i) And Worksheets("Feuil1").Range("A" & i) = "Négatif" Then
        Worksheets("Feuil1").Range("A" & i) = "Positif"
    End If
Next i
End Sub
7classeur1.xlsm (15.80 Ko)

Cdlt,

Super merci tout fonctionne

Rechercher des sujets similaires à "changement colonne adresse"