OVH Cloud OVH Cloud

version VBA

4 réponses
Avatar
coco74
Bonjour,

Pour une appli fonctionnant sous excel 97, j'ai écris le code suivant dans
Excel 2003 (format d'enregistrement Excel 97) où il fonctionne correctement.
Or quand j'execute le code dans la machine avec Excel 97 SR2, le code ne
s'execute pas ! !
Comment le modifier ?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

Set KeyCells = Range("B21:B204")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then

If ActiveCell.Offset(0, -1).Value = "3" Then
Selection.RowHeight = 45
ElseIf ActiveCell.Offset(0, -1).Value = "2" Then
Selection.RowHeight = 30
Else
Selection.RowHeight = 15
End If

End If
End Sub

--
coco

4 réponses

Avatar
AV
Testé sous XL97 :

Private Sub Worksheet_Change(ByVal zz As Range)
If Application.Intersect(zz, [B21:B204]) Is Nothing Then Exit Sub
x = zz.Row
Select Case zz.Offset(0, -1)
Case "3": Rows(x + 1).RowHeight = 45
Case "2": Rows(x + 1).RowHeight = 30
Case Else: Rows(x + 1).RowHeight = 15
End Select
End Sub

AV
Avatar
coco74
Merci AV pour ton aide, mais cela ne fonctionne pas sur mon appli !
Voilà ce que je cherche à faire :
Pour chaque cellule d'une zone (en colonne), je teste la cellule à gauche et
suivant sa valeur (1, 2 ou 3), je règle la hauteur de la ligne. La cellule
primaire (dans la zone en colonne) est pourvue d'une liste déroulante donc
modifiable à volonté et la cellule située à gauche suit le mouvement en
changeant elle aussi de valeur.


Testé sous XL97 :

Private Sub Worksheet_Change(ByVal zz As Range)
If Application.Intersect(zz, [B21:B204]) Is Nothing Then Exit Sub
x = zz.Row
Select Case zz.Offset(0, -1)
Case "3": Rows(x + 1).RowHeight = 45
Case "2": Rows(x + 1).RowHeight = 30
Case Else: Rows(x + 1).RowHeight = 15
End Select
End Sub

AV





Avatar
AV
La cellule primaire (dans la zone en colonne) est pourvue d'une liste déroulante
donc
modifiable à volonté et la cellule située à gauche suit le mouvement en
changeant elle aussi de valeur.


Petit cachotier !
Je suppose que tu veux parler de liste de validation...
C'est que ça change tout : la liste de validation ne déclenche pas (avec XL97)
l'évènement "Worksheet_Change"
(Nombreux fils sur le forum concernant le problème)
Exemple là pour contourner (à adapter) :

http://cjoint.com/?hckrJxmO7V

AV

Avatar
coco74
Ca fonctionne ! Merci encore.
Il est vrai que j'avais "zappé" cette "anomalie" de 97. Et c'est pas faute
de fouiller le forum quand j'ai des soucis (même quand j'en ai pas d'ailleurs
!) avant de poser une question.
Bon week-end !


La cellule primaire (dans la zone en colonne) est pourvue d'une liste déroulante
donc
modifiable à volonté et la cellule située à gauche suit le mouvement en
changeant elle aussi de valeur.


Petit cachotier !
Je suppose que tu veux parler de liste de validation...
C'est que ça change tout : la liste de validation ne déclenche pas (avec XL97)
l'évènement "Worksheet_Change"
(Nombreux fils sur le forum concernant le problème)
Exemple là pour contourner (à adapter) :

http://cjoint.com/?hckrJxmO7V

AV