Nom et prénom VBA

bonjour,

dans une même feuille excel 2013 j'aimerai avoir des cellules ou toutes les lettres sont en majuscule

et d'autre cellules ou la 1er lettre est en majuscule dans un même onglet.

Exemple noms de famille et prénoms

j'ai essayé avec

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CellB9 = Range("A28").Value
Range("A28").Value = UCase(CellA28)

CellB28 = Range("B28").Value2
Range("B28").Value2 = UCase(Left(CellB28, 1)) & LCase(Mid(CellB28, 2, Len(CellB28) - 1))

End Sub

mais c'est ou l'une ou l'autre qui fonctionne je n'arrive pas à trouver la liaison entre les 2 conditions

merci

Bonjour et bienvenue

Voici un exemple de code à placer dans la feuille concernée (pas dans un module)

Private Sub Worksheet_Change(ByVal Target As Range)

'si colonne A - MAJUSCULE
If Target.Column = 1 Then Target = UCase(Target)

'Si colonne B - Nom propre
If Target.Column = 2 Then Target = Application.Proper(Target)

End Sub

Amicalement

Nad

Merci Nad,

j'ai essayé et cela fonctionne très bien

mais ce que je voudrai c'est que cela s'applique seulement pour les :

Majuscule cellule B9 et B10 ainsi que cellule A28:A36

les 1er en majuscule et le reste en minuscule B28:B36

je sais je suis C....

merci encore cordialement

Bonjour,

à tester :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, pl As Range
    Application.ScreenUpdating = False
    ' MAJUSCULE
    Set pl = Intersect(Target, Union([B9:B10], [A28:A36]))
    If Not pl Is Nothing Then
        For Each c In pl
            c = UCase(c)
        Next c
    End If
    ' Nom propre
    Set pl = Intersect(Target, [B28:B36])
    If Not pl Is Nothing Then
        For Each c In pl
            c = Application.Proper(c)
        Next c
    End If
End Sub

eric

Bonjour Eric,

merci mais désolé cela ne fonctionne pas

Excel plante dès que je rentre un noms

cordialement

Excel plante

Quelle précision...

Message d'erreur ? version OS ?

Pas chez moi en tout cas, et je n'ai pas excel 2013...

eric

73classeur3.zip (7.24 Ko)

re Eric

oui pardon je vois bien que sur ton fichier cela fonctionne

sur le mieux Excel plante il marque:

ERREUR d'exécution 28"

espace pile insuffisant

et en débogage il va sur

Set pl = Intersect(Target, Union([B9:B10], [A28:A36]))

voila tout ce que je peux te dire

cordialement

Ah oui, j'ai oublié un truc. Etonnant même que ça ne plante pas chez moi...

A tester :

Dim noEvents As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, pl As Range
    If noEvents Then Exit Sub
    noEvents = True
    Application.ScreenUpdating = False
    ' MAJUSCULE
    Set pl = Intersect(Target, Union([B9:B10], [A28:A36]))
    If Not pl Is Nothing Then
        For Each c In pl
            c = UCase(c)
        Next c
    End If
    ' Nom propre
    Set pl = Intersect(Target, [B28:B36])
    If Not pl Is Nothing Then
        For Each c In pl
            c = Application.Proper(c)
        Next c
    End If
    noEvents = False
End Sub

eric

merci Eric,

ok impeccable cela fonctionne

c'est ;

Dim noEvents As Boolean

qui permet le fonctionnement ?

merci encore

En partie oui, pour éviter les appels en boucle infinie.

Equivalent à application.enabledEvents=false, sans les inconvénients.

eri

bonsoir Eric,

Désolé c'est Dimanche et je ne peux pas être devant l'ordi en permanence

merci de tes explications

dernière chose

peut on avoir ici un chemin de destruction autre qu'en dur dans la macro

c'est à dire avoir O:\Rapport activité\Sauvegarde\ dans une cellule du fichier

exemple FIC = ("CellB6*.xls")

Kill "CellB6\" & "Fiche Véhicule*.xls"

ci joint ma fonction qui marche

Dim Fic As String

Fic = ("O:\Rapport activité\Sauvegarde\*.xls")

Do While Fic <> "Fiche Véhicule*.xls"

Kill "O:\Rapport activité\Sauvegarde\" & "Fiche Véhicule*.xls"

Fic = "Fiche Véhicule*.xls"

Loop

merci d'avance

oui :

Kill [B6] & "Fiche Véhicule*.xls"

à condition d'être sûr que la feuille active soit la bonne.

Sinon la spécifier : ... worksheets("Feuil1").[B6] & ...

eric

Bonsoir,

Merci Eric tu es extra

donc je peux utiliser cela pour tous les chemin même pour faire un enregistrement d'un des onglets

j'avais réussi à faire ouvrir l'explorateur pour donner le chemin mais je préfère avoir le choix du chemin dans une cellule

merci encore et bonne fin de WE

encore pardon de t'avoir fait travailler un dimanche

Dim strchemin As String

Dim oFD As FileDialog

Dim strNomFichier As Variant

Rechercher des sujets similaires à "nom prenom vba"