Majuscules/Minuscules

B

BEN

Guest
Bonjour le forum.

Serait-il possible de m'aider?
Je souhaite faire une macro qui annalyse les lettres (des initiales) qui se trouvent dans une cellule
J'ai besoin de faire la distinction entre par exemple 'BP' et 'bp', 'JR' et 'jr' ect.....

Merci d'avance à celle ou à celui qui pourra m'éclairer.
 

porcinet82

XLDnaute Barbatruc
Salut Ben,

Tu ne précise pas exactement ce que tu souhaites. Tu veux savoir si les caractères sont en minuscule ou en majuscule?
VBA fait la différence entre minuscule et majuscule, si tu lui demande de comparer 'aa' et 'aA' il te dira que c'est différent.

Précise un peu ta demande, a moins que quelqu'un ai tout saisit.

@+
 
B

BEN

Guest
PORCINET82.

Voici quelques détails sur ce que je voudrait faire.
Les employés de mon service reçoivent des dossiers a traiter.
Les dossiers sont encodé en XL et lorsqu'une personne prend un dossier en charge elle encode ses initiales en minuscule dans une cellule du fichier.
Lorque le dossier est traité elle met ses initiales en majuscule.
Je voudrais au moyen d'une macro savoir quels sont les dossiers traités ou pas en analysant la cellule ou se trouvent les initiales.
J'espère que ces explications complémentaires pourrons t'aider.
Merci
 

Hervé

XLDnaute Barbatruc
Bonsoir ben, salut porcinet :)

Peut etre une solution à travers ce code :


Sub Bouton1_QuandClic()
Dim maj As Integer
Dim min As Integer
Dim c As Range

For Each c In Range('a1:a' & Range('a65536').End(xlUp).Row)
       
If c = UCase(c) Then
                maj = maj + 1
       
Else
                min = min + 1
       
End If
Next c

MsgBox 'Il y à :' & vbNewLine & vbNewLine & _
        maj & ' Dossiers traités' & vbNewLine & _
        min & ' Dossiers non traités'

End Sub

en imaginant que tes initiales sont en colonne A.

joyeux noel

salut
 
J

Jacky

Guest
Bonsoir BEN

un petit truc tout simple, sachant que chaque caractère possède un code appelé code ASCII. Ce dernier est compris entre 65 et 90 pour les majuscules et entre 97 et 122 pour les minuscules

avec le petit programme suivant tu analyse les codes ASCII des deux lettres et les ajoute
si la somme est inférieure à 180, tes 2 lettres sont en minuscules et si elle est supérieure à 194 elles sont en majuscules

Dim test As String
Dim calcul As Integer

test = Range('B2').Value
calcul = Asc(Left(test, 1)) + Asc(Right(test, 1))
MsgBox (calcul)

petit problème, si l'une des personnes laisse une lettre en majuscule et l'autre en minuscule, mon truc ne marche plus

A voir après adaptation
 

porcinet82

XLDnaute Barbatruc
Bonsoir a tous,

Je suis peut être complétement a coté de la plaque avec ma macro un peu simpliste mais bon je la donne quand meme. (Si les initiales sont dans la cellule A1)

Code:
Sub test_min_maj()

Application.Goto Sheets('feuil1').Range('A1')
If Cells(1, 1).Value = UCase(Cells(1, 1).Value) Then
    MsgBox 'Le dossier a été traité'
Else
    MsgBox 'Le dossier n'a pas été traité'
End If
End Sub

Le fichier joint sera peut etre plus parlant.

[file name=Ben.zip size=9470]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Ben.zip[/file]

@+
 

Pièces jointes

  • Ben.zip
    9.2 KB · Affichages: 30
  • Ben.zip
    9.2 KB · Affichages: 26
  • Ben.zip
    9.2 KB · Affichages: 31
B

Bonsoir Hervé

Guest
Merci HERVE,
C'est pas tout à fait ce que je voulais mais çà ma donné une idée.
que je vais creuser. Si les initiales sont en minuscules = dossier pas traité donc si j'utilise LCASE au lieu de UCASE je pourrai probablement savoir que le dossier n'est pas traité et de la copier les lignes ou il y a encore des minuscules dans une autre feuille pour faire un rapport?

Joyeux noël à toi aussi.

Ben
 

Hervé

XLDnaute Barbatruc
re tout le monde

de rien ben. :)

porcinet, une petite question si je peux me permettre.

je vois souvent dans tes codes, en début de procédure cette syntaxe :

Application.Goto Sheets('feuil1').Range('A1')

Pourrait-tu m'expliquer à quoi ca sert ?

d'avance je t'en remercie.

salut
 

porcinet82

XLDnaute Barbatruc
Salut Hervé,

Et bien fait j'avais demandé il y a quelque temps sur le forum, un code permettant de faire
Code:
sheets('feuil1').select
Range('a1').select
mais en une seul ligne.

Il me semble que c'est André qui m'avait donné ce code.
En fait comme tu dois maintenant t'en douter, il me sert a me placer dans cellule A1 de la feuille 1.

Il est vrai que je l'utilise a tour de bras, et peut etre pas toujours comme il faut, mais en général, comme on travail sur plusieurs feuille, c'est bien pratique.

J'espère avoir répondu correctement à ta question.

Si l'on ne se recroise pas avant, Joyeux noel.

@+
 

Discussions similaires

Réponses
16
Affichages
556

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 765
dernier inscrit
Pi4