Compatibilite ??? entre 2007 2002

Evelynetfrancois

XLDnaute Impliqué
Bonjour tout le monde
Je me heurte à un probleme de compatibilité (je pense)
avec cette macro toute simple !!

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("h2").Value = 1 Then
Range("a2").Value = "TOTO"
End If
.....
Fait planter excel 2007 , mais fonctionne trés bien sur les versions antérieurs (2002 XP ; 2003)
Est ce que ça vous parle ??
je dois surement changer qq chose mais je ne sais quoi !!
merci d'avance pour vos lumieres
bonne journée à tous
EetF
 

Evelynetfrancois

XLDnaute Impliqué
Re : Compatibilite ??? entre 2007 2002

Bonjour gilbert_RGI
Merci pour cette réponse rapide
Oui bien sur end sub, .....Excusez moi ....dans mon post j'ai juste noté le début de macro, mais j'ai bien end sub à la fin,
Le problème n'est donc pas là,
Au plaisir de vous lire
E et F
 

Misange

XLDnaute Barbatruc
Re : Compatibilite ??? entre 2007 2002

Bonjour
Si le classeur excel 2007 est enregistré en xlsm il n'y a aucune raison que ça ne fonctionne pas. LA notion de "fait planter excel" est bien vague : que se passe-t-il exactement ? Comment testes tu la macro ?
 

Evelynetfrancois

XLDnaute Impliqué
Re : Compatibilite ??? entre 2007 2002

re
bonjour misange


: je viens donc de l enregistrer sous excel prenant en charge les macros(xlsm) avant il etait sous 97 2003 xls
et j ai touijours le beugue " la methode value de l'objet range a échouée"
et l ecran deviens blanc clair
j ai egalement testé sur un autre ordi , des fois que ca vienne de l ordi ...........
idem meme resultat ,de plus pour sortir je suis oblige de faire ctrl alt supp
je vais essayer d isoler cette macro dans un modele a part (nouvelle feuille dans nouveau classeur ) et tester a nouveau

MERCI pour tout
a demain ,je dois filer
bonne soirée
E et F
 

Evelynetfrancois

XLDnaute Impliqué
Re : Compatibilite ??? entre 2007 2002

re

je pense avoir compris le problème avec F8


Private Sub Worksheet_Change(ByVal Target As Range)
'donc quand ca change sur la feuille

If Range("h2").Value = 1 Then
Range("a2").Value = "TOTO"

'là la cellule "a2" change de nouveau et la procédure est relancée !!!
'et elle tourne en boucle sans pouvoir en sortir !sans jamais atteindre le End if
End If
End Sub
 

Evelynetfrancois

XLDnaute Impliqué
Re : Compatibilite ??? entre 2007 2002

merci Gilbert_RGI
c est cette ligne qui me manquait
If Not Intersect(Target, Range("h2")) Is Nothing Then
tout rentre dans l ordre maintenant
merci pour tout !!!!
EetF
 

Pièces jointes

  • merci.xlsm
    17.9 KB · Affichages: 48
  • merci.xlsm
    17.9 KB · Affichages: 55
  • merci.xlsm
    17.9 KB · Affichages: 53

gilbert_RGI

XLDnaute Barbatruc
Re : Compatibilite ??? entre 2007 2002

ou, une autre méthode

Private Sub Worksheet_Change(ByVal Target As Range)
'""""""""""""""""""""""""""""""""""""""
If Not Intersect(Target, Range("h2")) Is Nothing Then

'""""""""""""""""""""""""""""""""""""
On Error Resume Next

Select Case Range("h2")
Case 1
Range("a2").Value = "TOTO"
Case 2
Range("a2").Value = "TATA"
Case 3
Range("a2").Value = "TUTU"
Case 4
Range("a2").Value = "TITI"
Case Else
Range("a2").Value = ""
End Select
End If
End Sub
 

Si...

XLDnaute Barbatruc
Re : Compatibilite ??? entre 2007 2002

salut

problème classique : évènement rappelé sans fin !
Une solution en évitant cela
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = 0
  If [H2] = 1 Then [A2] = "TOTO" 'le changement en [A2] ne relance plus l'évènement
  Application.EnableEvents = 1
End Sub
ou simplement avec une double condition
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$H$2" And [H2] = 1 Then [A2] = "TOTO"
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 714
Messages
2 091 226
Membres
104 812
dernier inscrit
hak nh