Code Vba qui fait planter Excel ???

Kiriko

XLDnaute Occasionnel
Bonjour à tous !!!,
On m'a fournit le code suivant (merci Dan) :
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    'Macro Dan pour Kiriko le 21/10/2010
    If Not Intersect(Target, Columns("A:A")) Is Nothing Then
    Target = UCase(Target)
    End If
    If Not Intersect(Target, Columns("B:B")) Is Nothing Then
    Target = Application.Ceiling(Target, 0.25)
    End If
    End Sub

Mais il fait planter excel (2007 et même 2010 bêta) dès l'exécution ("APPCRASH" dans l'observateur d'évènements)...
Une idée d'où peut venir le problème et comment y remédier ??

Merci de l'attention que vous porterez à mon problème...
 

Pièces jointes

  • Code qui fait planter Excel.xls
    27 KB · Affichages: 74
Dernière édition:

Softmama

XLDnaute Accro
Re : Code Vba qui fait planter Excel ???

Bonjour,
Comme ça ça fonctionne à priori. (pas testé)
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    'Macro Dan pour Kiriko le 21/10/2010
    Application.EnableEvents = False
    If Not Intersect(Target, Columns("A:A")) Is Nothing Then
    Target = UCase(Target)
    End If
    If Not Intersect(Target, Columns("B:B")) Is Nothing Then
    Target = Application.Ceiling(Target, 0.25)
    End If
    Application.EnableEvents = True
    End Sub
 

Softmama

XLDnaute Accro
Re : Code Vba qui fait planter Excel ???

Bonjour,
Normalement, juste en rajoutant cette ligne, cela fonctionne (pas testé) :
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    'Macro Dan pour Kiriko le 21/10/2010

[B]If Target.Row = 1 Then Exit Sub[/B]

    Application.EnableEvents = False
    If Not Intersect(Target, Columns("A:A")) Is Nothing Then
    Target = UCase(Target)
    End If
    If Not Intersect(Target, Columns("B:B")) Is Nothing Then
    Target = Application.Ceiling(Target, 0.25)
    End If
    Application.EnableEvents = True
    End Sub
 

Kiriko

XLDnaute Occasionnel
Re : Code Vba qui fait planter Excel ???

Merci beaucoup, c'est niquel...
J'avais besoin également que les accents ne restent pas avec la modif, j'ai bidouillé un truc mais il doit y avoir plus simple ?? :
Merci encore à tous !!
J'ai bidouillé une modif pour les accents, mais si vous avez plus simple, ça m'intéresse :

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
         'Macro Dan pour Kiriko le 21/10/2010
    If Target.Row = 1 Then Exit Sub
    If Not Intersect(Target, Columns("A:A")) Is Nothing Then
   codeA = "ÉÈÊËÔéèêëàçùôûïî"
   codeB = "EEEEOeeeeacuouii"
   temp = Target
    For i = 1 To Len(temp)
    p = InStr(codeA, Mid(temp, i, 1))
    If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
   Next
    Application.EnableEvents = False
    Target = UCase(temp)
    Target = UCase(Target)
    End If
    Application.EnableEvents = True
    If Not Intersect(Target, Columns("B:B")) Is Nothing Then
    Application.EnableEvents = False
    Target = Application.Ceiling(Target, 0.25)
    End If
    Application.EnableEvents = True
    End Sub
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Code Vba qui fait planter Excel ???

Re :),
Non :p.
Mais tu as mis une fonction de conversion où il manquent pas mal de cas :D...
Si tu commences par ton UCase, tu n'auras à traiter que les majuscules ;).
Et tu peux trouver ici par exemple d'autre fonctions de conversion.
Bon courage :cool:
 

Kiriko

XLDnaute Occasionnel
Re : Code Vba qui fait planter Excel ???

Merci beaucoup !!

Dernier point : Est-il possible d'appliquer ceci à l'ensemble de la feuille (sauf 1ère ligne), de manière à ce que qu'elle que soit la cellule de saisie, elle se transforme en majuscule sans accent ou en arrondi à 0.25 prêt supérieur en fonction de ce qui est saisi sans générer d'erreur ?? Et dans ce cas, comment "exclure" une colonne donnée? (la D par exemple)?
 
Dernière édition:

Dan

XLDnaute Barbatruc
Re : Code Vba qui fait planter Excel ???

Bonjour,

Kiriko, il est de bonne habitude d'éviter d'ouvrir des fils sur le même sujet dans plusieurs forums sans avoir au moins la pensée de signaler que tu demandes des informations ailleurs.

Dommage mais j'aurais préféré que tu le signales sur l'autre forum mais aussi ici pour ceux qui ont passé du temps à rechercher une solution à ton problème.

A bientôt
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Code Vba qui fait planter Excel ???

Re :),
Avec la remarque de Dan, je ne sais pas si la dernière question est toujours d'actualité :confused:... Merci Dan pour cette info ;).
Code:
[COLOR=blue]Private Sub[/COLOR] Worksheet_Change([COLOR=blue]ByVal[/COLOR] Target [COLOR=blue]As[/COLOR] Range)
[COLOR=blue]If[/COLOR] Target.Row = 1 [COLOR=blue]Or[/COLOR] Target.Column = 4 [COLOR=blue]Then Exit Sub[/COLOR]
Application.EnableEvents = [COLOR=blue]False[/COLOR]
[COLOR=blue]If[/COLOR] IsNumeric(Target) [COLOR=blue]Then[/COLOR]
Target = Application.Ceiling(Target, 0.25)
[COLOR=blue]Else[/COLOR]
Target = UCase(Target)
[COLOR=blue]End If[/COLOR]
Application.EnableEvents = [COLOR=blue]True[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Bon dimanche :cool:
 

Kiriko

XLDnaute Occasionnel
Re : Code Vba qui fait planter Excel ???

Merci à tous,
Je présente mes excuses ici à tous, je n'avais pas conscience que le fait de poster sur 2 forums sans le signaler explicitement (Je t'ai néanmoins cité, Dan, mais il est vrai sans te le demander où t'informer, d'où mes excuses).

Je suis de bonne volonté et tiens à "rentrer dans le rang" des pratiques cordiales de ces forums qui m'apportent beaucoup, et espère que vous voudrez bien mettre cette pratique sur le dos de ma faible pratique et mon inattention..

Cordialement à tous, avec de nouveau mes excuses et mes remerciements....
 

Discussions similaires

Statistiques des forums

Discussions
314 663
Messages
2 111 652
Membres
111 246
dernier inscrit
Jeanluis87