Soyez le premier à donner votre avis sur cette source.
Snippet vu 11 786 fois - Téléchargée 27 fois
Sub globale() Dim plage As Range, cel As Range On Error GoTo finerreur 'SelectionPlage Set plage = Application.InputBox("Sélectionnez les cellules à convertir :", "Sélection de cellules", Type:=8) 'Boucle sur chaque cellule de la plage sélectionnée For Each cel In plage 'Sélection de la cellule dans la plage définie cel.Select 'Convertion de la cellule sélectionnée Call Convertion Next cel MsgBox "Traitement terminé.", vbInformation, "Convertion" 'information de fin GoTo Fin finerreur: Fin: End Sub Sub Convertion() Select Case ActiveCell.Value 'Valeur de la cellule 'CASSE UNIFROME (minimum 1 caractère) Case "" MsgBox ("BASCULEMENT IMPOSSIBLE :" & Chr(10) & "Cellule sélectionnée vide"), vbExclamation Case Is = LCase(ActiveCell.Value) 'Passage en minuscules ActiveCell.Value = UCase(ActiveCell.Value) Case Is = UCase(ActiveCell.Value) 'Passage en majuscules ActiveCell.Value = LCase(ActiveCell.Value) Case Else If IsNumeric(ActiveCell.Value) = True Then 'Test si la cellule est numérique MsgBox ("BASCULEMENT IMPOSSIBLE :" & Chr(10) & "La cellule sélectionnée ne contient que des chiffres."), vbInformation End If 'CASSE NON UNIFROME (minimum 2 caractères) Select Case Mid(ActiveCell.Value, 2, 1) 'Test de la casse sur le 2ème caractère Case Is = LCase(Mid(ActiveCell.Value, 2, 1)) 'Passage en minuscules ActiveCell.Value = UCase(ActiveCell.Value) Case Is = UCase(Mid(ActiveCell.Value, 2, 1)) 'Passage en majuscules ActiveCell.Value = LCase(ActiveCell.Value) End Select End Select End Sub
Deux petites remarques :
- Tu devrais passer en paramètre une cellule à ta procédure "Conversion" plutôt que d'utiliser la cellule active. Ca te permettrait éventuellement d'executer ta fonction sur l'ensemble des cellules actives
- Quand tu fais un saut de ligne dans un msgbox, utilise la constante vbcrlf ou vbNewLine qui représentent les deux caractères chr$(10) & chr$(13). S'il venait à l'idée d'un développeur de Microsoft de ne plus supporter le passage à la ligne sur une seule des deux valeurs...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.