OVH Cloud OVH Cloud

Mémoire du maximum d'une colonne pour chaque cellule

1 réponse
Avatar
alesiom
Bonjour,

Je serais tr=E8s reconnaissant si qqn pouvait m'aider =E0 r=E9soudre ce
petit travail d'Excel avec Worksheet Calculate()

Prenons la feuil1:
------------------------

En colonne A : j'ai des nombres qui varient en provenance d'une autre
application. (ce n'est pas l'utilisateur qui les change)

En colonne B : je souhaiterais conserver le maximum pris par les
valeurs de la colonne A.

J'ai essay=E9 la syntaxe ci-dessous mais le probl=E8me est qu'Excel copie
toutes les valeurs des colonne A vers la colonne B et non cellule par
cellule.


Merci beaucoup par avance !


Private Sub Worksheet_Calculate()
On Error Resume Next
If Range("A:A").Value > Range("B:B").Value Then
Range("B:B").Value =3D Range("A:A").Value
End If
End Sub


Par cons=E9quent une solution simple revient =E0 =E9crire plein de lignes
de code comme :

Private Sub Worksheet_Calculate()
On Error Resume Next
If Range("A1").Value > Range("B1").Value Then
Range("B1").Value =3D Range("A1").Value
End If
If Range("A2").Value > Range("B2").Value Then
Range("B2").Value =3D Range("A2").Value
End If
If Range("A3").Value > Range("B3").Value Then
Range("B3").Value =3D Range("A3").Value
End If

End Sub

Mais c'est tr=E8s lourd =E0 =E9crire et pas optimis=E9.

1 réponse

Avatar
isabelle
bonjour alesiom,

On Error Resume Next
For i = 1 To Range("A65536").End(xlUp).Row
If Range("A" & i).Value > Range("B" & i).Value Then
Range("B" & i).Value = Range("A" & i).Value
End If
Next
End Sub

isabelle


Bonjour,

Je serais très reconnaissant si qqn pouvait m'aider à résoudre ce
petit travail d'Excel avec Worksheet Calculate()

Prenons la feuil1:
------------------------

En colonne A : j'ai des nombres qui varient en provenance d'une autre
application. (ce n'est pas l'utilisateur qui les change)

En colonne B : je souhaiterais conserver le maximum pris par les
valeurs de la colonne A.

J'ai essayé la syntaxe ci-dessous mais le problème est qu'Excel copie
toutes les valeurs des colonne A vers la colonne B et non cellule par
cellule.


Merci beaucoup par avance !


Private Sub Worksheet_Calculate()
On Error Resume Next
If Range("A:A").Value > Range("B:B").Value Then
Range("B:B").Value = Range("A:A").Value
End If
End Sub


Par conséquent une solution simple revient à écrire plein de lignes
de code comme :

Private Sub Worksheet_Calculate()
On Error Resume Next
If Range("A1").Value > Range("B1").Value Then
Range("B1").Value = Range("A1").Value
End If
If Range("A2").Value > Range("B2").Value Then
Range("B2").Value = Range("A2").Value
End If
If Range("A3").Value > Range("B3").Value Then
Range("B3").Value = Range("A3").Value
End If

End Sub

Mais c'est très lourd à écrire et pas optimisé.