Vérifie si une chaine commence par une majuscule
#1
Aspirant XLPages

Inscription: 05/10/2008

Messages: 24

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 05-02-2009 21h47
 Bonsoir à tous,
je cherche une solution pour vérifier si dans une liste de  chaine de caracteres les chaines commence par une majuscule

sinon par exemple: 
Msgbox "ligne X ne commence pas par une majuscule" 

 j'essai avec Like mais je pense que je n'ai pas compris comment ça fonctionne!

merci d'avance 

Edité par spookyz le 05/02/2009 23:15:55
Hors Ligne
Rapport   Haut 

Re: Vérifie si une chaine commence par une majuscule
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1486

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016
Posté le : 05-02-2009 22h14
Bonsoir spookyz, le Forum,

Tu as plusieurs façon de parvenir à ce test.

Tu peux utiliser par exemple une fonction personnalisée comme celle-ci :
Function MajOK(T As String) As Boolean
    MajOK = Left(T, 1) = UCase(Left(T, 1))
End Function
Pour l'utiliser, par exemple :
Sub Test()
    MsgBox MajOK("Cette chaine commence par une majuscule")
    MsgBox MajOK("celle-ci non")
End Sub
La première MsgBox retournera Vrai et la deuxième Faux.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Vérifie si une chaine commence par une majuscule
#3
Aspirant XLPages

Inscription: 05/10/2008

Messages: 24

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 05-02-2009 22h25
Re à tous et encore une fois merci a MDF pour cette reponse
je regarde et je clos ce fil ensuite  
Hors Ligne
Rapport   Haut 

Re: Vérifie si une chaine commence par une majuscule
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1486

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016
Posté le : 05-02-2009 22h27
Re,

Et si tu veux utiliser l'opérateur Like, tu peux aussi faire comme ça :
Function MajOK(T As String) As Boolean
    MajOK = T Like "[A-Z]*"
End Function

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Vérifie si une chaine commence par une majuscule
#5
Aspirant XLPages

Inscription: 05/10/2008

Messages: 24

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 05-02-2009 22h48
Désolé je craind de n'avoir rien compris voila ce que j'essai de faire 

 
Function MajOK(As String) As Boolean
    MajOK = Left(T, 1) = UCase(Left(T, 1))
   
End Function


Sub Test()
DERLIGNE = Cells(1, 3).End(xlDown).Row
For T = 1 To DERLIGNE
Z = Cells(T, 3).Text
    MsgBox MajOK(Z)
    MsgBox MajOK("celle-ci non")
Next T
End Sub
Hors Ligne
Rapport   Haut 

Re: Vérifie si une chaine commence par une majuscule
#6
Aspirant XLPages

Inscription: 09/11/2008
De Riedisheim (Mulhouse - Alsace)

Messages: 25

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 05-02-2009 22h56
Bonjour spookyz,
Didier ,

essaye plutôt ceci:

Sub Test()
DERLIGNE = Cells(1, 3).End(xlDown).Row
For T = 1 To DERLIGNE
Z = Cells(T, 3).Text
    If Not MajOK(Z) Then  MsgBox "
ligne " & T & " ne commence pas par une majuscule"
Next T
End Sub


A+
Skoobi
-----------------------------------------
On en apprend tous les jours.
Hors Ligne
Rapport   Haut 

Re: Vérifie si une chaine commence par une majuscule
#7
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1486

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016
Posté le : 05-02-2009 23h04
re,
Bonsoir Skoobi,
Je préfère comme ceci pour ma part :
Option Explicit

Sub Test()
Dim DerLign As Long, L As Long
Dim T As String
    DerLign = Cells(ActiveSheet.Rows.Count, 3).End(xlUp).Row
    For L = 1 To DerLign
        T = Cells(L, 3).Text
        If Not MajOK(T) Then
            MsgBox "ligne " & L & " ne commence pas par une majuscule"
        End If
    Next L
End Sub

Function MajOK(T As String) As Boolean
    MajOK = Left(T, 1) = UCase(Left(T, 1))
End Function

spookyz, je t'invite à consulter VBA et les variables ou tout autre source sur le net qui pourrait t'aider à prendre conscience de l'importance de déclarer ses variables en VBA.

Cordialement


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Vérifie si une chaine commence par une majuscule
#8
Aspirant XLPages

Inscription: 05/10/2008

Messages: 24

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 05-02-2009 23h05
Bonsoir skoobi et merci mais voila

j'obtient
erreur de compilation: Type d'argument ByRef incompatible
sur le (Z) de
If Not MajOK(Z) 

Alors ??

Mdf la solution 23h04 fonctionne tres bien et merci pour ce lien
j'y travaille mais c'est tellement vaste que ça viend petit a petit 
mais c'est aussi grace a votre generosité alors encore merci à tous 
A+



Hors Ligne
Rapport   Haut 

Re: Vérifie si une chaine commence par une majuscule
#9
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1486

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016
Posté le : 05-02-2009 23h11
Dans ce cas, tu peux contourner le problème en rectifiant la ligne suivante :
Function MajOK(ByVal T As String) As Boolean
Cela dit, si tu déclares tes variables et utilises tel quel le code que je te propose ci-dessus, j'ai peine à croire que tu puisses rencontrer cette erreur "Type d'argument ByRef incompatible"...

Cordialement,


Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes