[VBA/EXCEL] Passage de 2003 à 2007 problèmatique

idaho2duncan Messages postés 15 Date d'inscription lundi 17 décembre 2007 Statut Membre Dernière intervention 25 mars 2010 - 24 févr. 2010 à 14:45
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 24 févr. 2010 à 18:03
J'avais un fichier excel qui avait un code VBA simple pour mettre en majuscule ou pas qui fonctionnait très bien sous Excel 2003 mais qui ne fonctionne plus du tout sous 2007. Le code est toujours là, mais ça ne fait pas ce que ça devrait faire.
Help!!

Merci :)

7 réponses

idaho2duncan Messages postés 15 Date d'inscription lundi 17 décembre 2007 Statut Membre Dernière intervention 25 mars 2010
24 févr. 2010 à 15:09
HELP!!! s'il vous plait
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 13
24 févr. 2010 à 17:11
Bonjour à toi aussi,

J'avais un fichier excel ...


donc ce n'est pas du VB6 !

hmmm... non je vois pas désolé... ma boule de cristal a peut être un problème

Sérieusement sans le code comment veux tu que l'on te réponde ?

A+
0
idaho2duncan Messages postés 15 Date d'inscription lundi 17 décembre 2007 Statut Membre Dernière intervention 25 mars 2010
24 févr. 2010 à 17:18
Désolé, je ne suis super au point entre VBA, VB6. Tout ce que je sais, c'est que mon fichier excel marchait très bien avec ce code sous excel 2003, et que sous excel 2007, ça ne marche pas (c'est juste censé mettre automatiquement en majuscule les données dans certaines colonnes).

Voici le code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub '<-- pour éviter que ça coince si on sélectionne plusieurs cellules
If Target.Column = 15 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 3 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 4 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 5 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 6 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 7 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 8 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 9 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 10 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 11 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 12 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 13 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 27 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 28 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 32 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 33 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 36 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 37 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 39 Then
Target.Value = StrConv(Target.Value, 1)
ElseIf Target.Column = 14 Then
Target.Value = StrConv(Target.Value, 3)
End If
End Sub

Merci pour toute aide apportée :)
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 13
24 févr. 2010 à 17:30
re,

ben le gas qui fait ça il était pas au point non plus

essai ça :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub '<-- pour éviter que ça coince si on sélectionne plusieurs cellules
    Select Case Target.Column
        Case 3 To 15, 27, 28, 32, 33, 36, 37, 39
            Target.Value = UCase$(Target.Value)
    End Select
End Sub


A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
idaho2duncan Messages postés 15 Date d'inscription lundi 17 décembre 2007 Statut Membre Dernière intervention 25 mars 2010
24 févr. 2010 à 17:33
Merci, mais la colonne 14 est différente, on veut juste que la première soit en majuscule, le reste en minuscule: c'est pour un prénom (type "Corinne")
C'est possible aussi?
0
idaho2duncan Messages postés 15 Date d'inscription lundi 17 décembre 2007 Statut Membre Dernière intervention 25 mars 2010
24 févr. 2010 à 17:42
Et puis le code n'est pas le problème. Il fonctionnait très bien sous Excel 2003. Si je saisissait des données dans les colonnes 3 à 13 par exemples, les lettres se mettaient automatiquement en majuscules. Idem pour les autres colonnes, selon le code.
Un fois installé Excel 2007, j'ai ouvert mon fichier comme d'hab, j'ai saisit mes données comme d'hab, et le mot ne s'est jamais mis en majuscule. C'est ça le problème.
Le code est toujours là, j'ai vérifié. Mais le mot reste en minuscule, si saisit en minuscule.
Je ne sais pas si ça vous aide à y voir plus clair?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 223
24 févr. 2010 à 18:03
Le code que t'a donné bigfish_le_vrai est le bon, poiur ce qui est de la méthode.
A toi de remplacer " to 15 par 3 to 13 !
A toi également de remplacer :
Target.Value = UCase$(Target.Value)

par
Target.Value =strconv(Target.Value, vbproperCase)

La fonction strconv et la constante vbpropercase existent et fonctionnent sous VBNA/Excel 2007 (je viens de m'en assurer) !

J'en conclus que tu as entre-temps commis la maladresse d'attribuer le nom de strconv à quelque-chose d'autre ===>> VBA s'y perd alors !
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
Rejoignez-nous