Code VBA qui plante pour majuscules

Code VBA qui plante pour majuscules - VB/VBA/VBS - Programmation

Marsh Posté le 22-12-2011 à 15:55:35    

Bonjour,  
 
Après avoir tenté de trouver une solution sur le forum et avec mes méninges, je bute sur un programme sur excel pour la mise en forme automatique en majuscule de certaines cellules e la feuille. Voici le code :  
 
Private Sub Worksheet_Change(ByVal Target As Range)  
    If Not Application.Intersect(Target, Range("C5:C200" )) Is Nothing Then  
        If Not IsEmpty(Target) Then  
            Target.Value = UCase(Target.Value)  
        End If  
    End If  
 
    If Not Application.Intersect(Target, Range("G5:G200" )) Is Nothing Then  
        If Not IsEmpty(Target) Then  
            Target.Value = UCase(Target.Value)  
        End If  
    End If  
End Sub  
 
Pour la colonne C, aucun souci, mais ça plante dès que j'écris qqch dans la colonne G. Erreur d'exécution 2147417848 (80010108). La méthode 'Value' de l'objet 'Range' a échoué, et au débogage, ça s'arrête sur Target.Value = UCase(Target.Value) de la deuxième partie du code, alors qu'identique que la première partie...  
??????  
Merci beaucoup pour votre aide  
 
Quelqu'un a-t-il une solution miracle ?

Reply

Marsh Posté le 22-12-2011 à 15:55:35   

Reply

Marsh Posté le 23-12-2011 à 10:10:52    

Essayer :

Private Sub Worksheet_Change(ByVal Target As Range)  
    If Not Application.Intersect(Target, Range("C5:C200,G5:G200" )) Is Nothing Then  
        If Not IsEmpty(Target) Then  
            Target.Value = UCase(Target.Value)  
        End If  
    End If  
End Sub  

Ca devrait marcher car il y a un exemple similaire sur la page http://www.ozgrid.com/VBA/vba-intersect.htm

Reply

Marsh Posté le 02-01-2012 à 12:05:05    

olivthill a écrit :

Essayer :

Private Sub Worksheet_Change(ByVal Target As Range)  
    If Not Application.Intersect(Target, Range("C5:C200,G5:G200" )) Is Nothing Then  
        If Not IsEmpty(Target) Then  
            Target.Value = UCase(Target.Value)  
        End If  
    End If  
End Sub  

Ca devrait marcher car il y a un exemple similaire sur la page http://www.ozgrid.com/VBA/vba-intersect.htm


 
Bonjour,
 
Merci pour votre aide, mais ça ne marche pas mieux, après il me met même une fenêtre "mémoire insuffisante pour tout afficher", ça plante, et je dois fermer excel...

Reply

Marsh Posté le 03-01-2012 à 14:43:13    

j'ai copié le code dans un classeur vierge, et ça marche sans problème... il y a-t-il une explication ?
Merci vivement pour votre aide !

Reply

Marsh Posté le 05-01-2012 à 11:07:39    

je suis toujours en panne, rien n'y fait, HELP !!!!

Reply

Marsh Posté le 09-01-2012 à 14:17:08    

j'ai fini par trouver, pour ceux que ça intéresse...
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Application.Intersect(Target, Range("C5:C200,G5:G200" )) Is Nothing Then
    If Not IsEmpty(Target) Then
      Application.EnableEvents = False
      Target.Value = UCase(Target.Value)
      Application.EnableEvents = True
    End If
  End If
End Sub
 
à bientôt !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed