Bonjour le Forum,
Merci Lionel, mais malgré xxxx tentatives je ne parviens à rien.
Pour Ucase et Lcase, aucun souci, mais grosse prise de tête avec Proper.
Jipé
"Lionel" a écrit dans le message de news:
43ddf873$0$6649$Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas
présent,
pour éviter une nouvel appel deWorksheet_Change à chaque modification de
cellule, je te conseille de placer dans le code Application.EnableEvents
False, sans omettre de le positionner de nouveau à True avant la sortie
de
la procédure événementielle.
Amicalement
Lionel
"Quaisako" a écrit dans le message de
news:Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target > >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour le Forum,
Merci Lionel, mais malgré xxxx tentatives je ne parviens à rien.
Pour Ucase et Lcase, aucun souci, mais grosse prise de tête avec Proper.
Jipé
"Lionel" <notta.lionel@wanadoo.fr> a écrit dans le message de news:
43ddf873$0$6649$8fcfb975@news.wanadoo.fr...
Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas
présent,
pour éviter une nouvel appel deWorksheet_Change à chaque modification de
cellule, je te conseille de placer dans le code Application.EnableEvents
False, sans omettre de le positionner de nouveau à True avant la sortie
de
la procédure événementielle.
Amicalement
Lionel
"Quaisako" <jean_pierre_rome@hotmail.com> a écrit dans le message de
news:umew7YYJGHA.1424@TK2MSFTNGP12.phx.gbl...
Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target > >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour le Forum,
Merci Lionel, mais malgré xxxx tentatives je ne parviens à rien.
Pour Ucase et Lcase, aucun souci, mais grosse prise de tête avec Proper.
Jipé
"Lionel" a écrit dans le message de news:
43ddf873$0$6649$Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas
présent,
pour éviter une nouvel appel deWorksheet_Change à chaque modification de
cellule, je te conseille de placer dans le code Application.EnableEvents
False, sans omettre de le positionner de nouveau à True avant la sortie
de
la procédure événementielle.
Amicalement
Lionel
"Quaisako" a écrit dans le message de
news:Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target > >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >
Le code ci-dessous me permet de créer une feuille , et de nommer la feuille
créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== > 'Ajouter une feuille. 'Denis Michon.
'================================== > Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce nom,"
_
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare) > 0
Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
Bonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >
Le code ci-dessous me permet de créer une feuille , et de nommer la feuille
créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== > 'Ajouter une feuille. 'Denis Michon.
'================================== > Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce nom,"
_
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare) > 0
Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
Bonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >
Le code ci-dessous me permet de créer une feuille , et de nommer la feuille
créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== > 'Ajouter une feuille. 'Denis Michon.
'================================== > Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce nom,"
_
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare) > 0
Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >> 'Ajouter une feuille. 'Denis Michon.
'================================== >> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelle
Bonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >> 'Ajouter une feuille. 'Denis Michon.
'================================== >> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)
0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >> 'Ajouter une feuille. 'Denis Michon.
'================================== >> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >> 'Ajouter une feuille. 'Denis Michon.
'================================== >> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1),
vbTextCompare) > 0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelle
Bonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >> 'Ajouter une feuille. 'Denis Michon.
'================================== >> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1),
vbTextCompare) > 0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >> 'Ajouter une feuille. 'Denis Michon.
'================================== >> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1),
vbTextCompare) > 0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
Bonsoir Isabelle,
Merci.
C'est OK pour ceci.
ActiveSheet.Name = Application.Proper(Reponse)
Mais avec Ucase, ça ne fonctionne pas.
ActiveSheet.Name = Application.Ucase(Reponse)
Ucase, ne s'utilise pas de la même façon ?
Jipé
"isabelle" a écrit dans le message de news:bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>>'Ajouter une feuille. 'Denis Michon.
'================================== >>>Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
Bonsoir Isabelle,
Merci.
C'est OK pour ceci.
ActiveSheet.Name = Application.Proper(Reponse)
Mais avec Ucase, ça ne fonctionne pas.
ActiveSheet.Name = Application.Ucase(Reponse)
Ucase, ne s'utilise pas de la même façon ?
Jipé
"isabelle" <hoHoho@hohoHo> a écrit dans le message de news:
eL8zYQSJGHA.3696@TK2MSFTNGP15.phx.gbl...
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelle
Bonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>>'Ajouter une feuille. 'Denis Michon.
'================================== >>>Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)
0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
Bonsoir Isabelle,
Merci.
C'est OK pour ceci.
ActiveSheet.Name = Application.Proper(Reponse)
Mais avec Ucase, ça ne fonctionne pas.
ActiveSheet.Name = Application.Ucase(Reponse)
Ucase, ne s'utilise pas de la même façon ?
Jipé
"isabelle" a écrit dans le message de news:bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>>'Ajouter une feuille. 'Denis Michon.
'================================== >>>Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
voici l'exemple fourni dans l'aide xl2002
UCase, fonction, exemple
Cet exemple utilise la fonction UCase pour renvoyer une chaîne dans une
version en caractères majuscules.
Dim LowerCase, UpperCase
LowerCase = "Bonjour à tous 1234" ' Chaîne à convertir.
UpperCase = UCase(LowerCase) ' Renvoie "BONJOUR À TOUS 1234".
isabelleBonsoir Isabelle,
Merci.
C'est OK pour ceci.
ActiveSheet.Name = Application.Proper(Reponse)
Mais avec Ucase, ça ne fonctionne pas.
ActiveSheet.Name = Application.Ucase(Reponse)
Ucase, ne s'utilise pas de la même façon ?
Jipé
"isabelle" a écrit dans le message de news:bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>>>'Ajouter une feuille. 'Denis Michon.
'================================== >>>>Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
voici l'exemple fourni dans l'aide xl2002
UCase, fonction, exemple
Cet exemple utilise la fonction UCase pour renvoyer une chaîne dans une
version en caractères majuscules.
Dim LowerCase, UpperCase
LowerCase = "Bonjour à tous 1234" ' Chaîne à convertir.
UpperCase = UCase(LowerCase) ' Renvoie "BONJOUR À TOUS 1234".
isabelle
Bonsoir Isabelle,
Merci.
C'est OK pour ceci.
ActiveSheet.Name = Application.Proper(Reponse)
Mais avec Ucase, ça ne fonctionne pas.
ActiveSheet.Name = Application.Ucase(Reponse)
Ucase, ne s'utilise pas de la même façon ?
Jipé
"isabelle" <hoHoho@hohoHo> a écrit dans le message de news:
eL8zYQSJGHA.3696@TK2MSFTNGP15.phx.gbl...
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelle
Bonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>>>'Ajouter une feuille. 'Denis Michon.
'================================== >>>>Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)
0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
voici l'exemple fourni dans l'aide xl2002
UCase, fonction, exemple
Cet exemple utilise la fonction UCase pour renvoyer une chaîne dans une
version en caractères majuscules.
Dim LowerCase, UpperCase
LowerCase = "Bonjour à tous 1234" ' Chaîne à convertir.
UpperCase = UCase(LowerCase) ' Renvoie "BONJOUR À TOUS 1234".
isabelleBonsoir Isabelle,
Merci.
C'est OK pour ceci.
ActiveSheet.Name = Application.Proper(Reponse)
Mais avec Ucase, ça ne fonctionne pas.
ActiveSheet.Name = Application.Ucase(Reponse)
Ucase, ne s'utilise pas de la même façon ?
Jipé
"isabelle" a écrit dans le message de news:bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>>>'Ajouter une feuille. 'Denis Michon.
'================================== >>>>Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
ou bien la version complète :
ActiveSheet.Name = Application.WorksheetFunction.Proper(Reponse)
isabellebonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>> 'Ajouter une feuille. 'Denis Michon.
'================================== >>> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
ou bien la version complète :
ActiveSheet.Name = Application.WorksheetFunction.Proper(Reponse)
isabelle
bonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelle
Bonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>> 'Ajouter une feuille. 'Denis Michon.
'================================== >>> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)
0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
ou bien la version complète :
ActiveSheet.Name = Application.WorksheetFunction.Proper(Reponse)
isabellebonjour Jipé,
remplace
ActiveSheet.Name = Reponse
par
ActiveSheet.Name = Application.Proper(Reponse)
isabelleBonsoir le Forum,
J'ai 2 questions concernant la casse.
===== 1 ==== >>>
J'utilise ce code pour mettre en majuscules la plage "C7:C50".
Aucun souci.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target =
UCase(Target)
End Sub
Je voudrais mettre en Noms propres la plage "D7:D50".
Je ne parviens pas à utiliser "Proper".
Pouvez-vous m'explquer comment ?
===== 2 ===== >>>
Le code ci-dessous me permet de créer une feuille , et de nommer la
feuille créée à l'aide d'une Inputbox.
Comment forcer la saisie du nom de la feuille en majuscule ?
'================================== >>> 'Ajouter une feuille. 'Denis Michon.
'================================== >>> Private Sub CommandButton1_Click()
Dim Sh As Worksheet
Dim Reponse As String
Dim MonNom As String
Dim BonNom As Boolean
Dim LeString
LeString = ":/?*[]"
Do
BonNom = True
Reponse = InputBox("Pour quel élève souhaitez-vous créer" _
+ vbCrLf + "une nouvelle feuille ?", _
"Baptisez votre feuille ", MonNom)
If Reponse <> "" Then
'Vérifier que le nom n'existe pas déjà...
For a = 1 To ActiveWorkbook.Worksheets.Count
If UCase(Reponse) = UCase(Worksheets(a).Name) Then
supp = MsgBox( _
"Vous possédez une feuille portant déjà ce
nom," _
+ vbCrLf + vbCrLf + _
"Désirez-vous la remplacer?.", vbYesNo +
vbOKOnly, _
"Nom existant déjà")
If supp = vbYes Then
Application.DisplayAlerts = False
Worksheets(Reponse).Delete
Application.DisplayAlerts = True
Exit For
Else
BonNom = False
MonNom = Reponse
Exit For
End If
End If
Next
'Vérifier que le nombre de caractères du nom ne dépassent 31...
If Len(Reponse) > 31 Then
MsgBox "Le nombre de caractères (" & _
Len(Reponse) & ") de votre nom dépasse" _
+ vbCrLf + " celui permis (31) par excel.", _
vbCritical + vbInformation, "Nom trop long"
BonNom = False
MonNom = Reponse
End If
'Vérifier l'emploi de caractères interdits...dans le nom
For a = 1 To Len(LeString)
If InStr(1, Reponse, Mid(LeString, a, 1), vbTextCompare)0 Then
MsgBox "Les caractères suivants: " & _
LeString & " sont interdits" _
+ vbCrLf + "dans le nom d'une feuille.", _
vbCritical + vbOKOnly, "Caractère interdit"
BonNom = False
MonNom = Reponse
Exit For
End If
Next
Else
Exit Sub
End If
Loop Until BonNom = True
'Set Sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
Sheets.Add after:=Sheets(Sheets.Count), _
Type:=Application.TemplatesPath & "Modèle_notation.xlt"
ActiveSheet.Name = Reponse
'Copie des formules pour le prénom et la classe.
With ActiveSheet
.Select
.Range("A2").Select
ActiveCell.FormulaLocal = "=RECHERCHEV(A1;Classe!C7:D50;2)"
.Range("A3").Select
ActiveCell.FormulaLocal = "=Classe!C2"
.Range("A7").Select
End With
End Sub
Merci d'avance
Jipé
Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target > UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target > UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target > UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas présent,
pour éviter une nouvel appel deWorksheet_Change à chaque modification de
cellule, je te conseille de placer dans le code Application.EnableEvents > False, sans omettre de le positionner de nouveau à True avant la sortie de
la procédure événementielle.
Amicalement
Lionel
"Quaisako" a écrit dans le message de
news:Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas présent,
pour éviter une nouvel appel deWorksheet_Change à chaque modification de
cellule, je te conseille de placer dans le code Application.EnableEvents > False, sans omettre de le positionner de nouveau à True avant la sortie de
la procédure événementielle.
Amicalement
Lionel
"Quaisako" <jean_pierre_rome@hotmail.com> a écrit dans le message de
news:umew7YYJGHA.1424@TK2MSFTNGP12.phx.gbl...
Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas présent,
pour éviter une nouvel appel deWorksheet_Change à chaque modification de
cellule, je te conseille de placer dans le code Application.EnableEvents > False, sans omettre de le positionner de nouveau à True avant la sortie de
la procédure événementielle.
Amicalement
Lionel
"Quaisako" a écrit dans le message de
news:Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour Jipé,
Essaie ce code pour la procédure événementielle :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim Cell As Range
'
With Application
If Target.Text <> "" Then
.EnableEvents = False
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then
'Colonne des noms en majuscule.
Target = UCase(Target)
ElseIf Not Intersect(Target, Range("D6:D50")) Is Nothing Then
'Colonne des prénoms en NomPropre.
Target = Application.WorksheetFunction.Proper(Target)
End If
.EnableEvents = True
End If
End With
End Sub
Amicalement
Lionel
"Quaisako" a écrit dans le message de
news:%Bonjour le Forum,
Merci Lionel, mais malgré xxxx tentatives je ne parviens à rien.
Pour Ucase et Lcase, aucun souci, mais grosse prise de tête avec Proper.
Jipé
"Lionel" a écrit dans le message de news:
43ddf873$0$6649$Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas
présent,pour éviter une nouvel appel deWorksheet_Change à chaque modification
de
cellule, je te conseille de placer dans le code
Application.EnableEventsFalse, sans omettre de le positionner de nouveau à True avant la sortie
dela procédure événementielle.
Amicalement
Lionel
"Quaisako" a écrit dans le message de
news:Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target >> >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour Jipé,
Essaie ce code pour la procédure événementielle :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim Cell As Range
'
With Application
If Target.Text <> "" Then
.EnableEvents = False
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then
'Colonne des noms en majuscule.
Target = UCase(Target)
ElseIf Not Intersect(Target, Range("D6:D50")) Is Nothing Then
'Colonne des prénoms en NomPropre.
Target = Application.WorksheetFunction.Proper(Target)
End If
.EnableEvents = True
End If
End With
End Sub
Amicalement
Lionel
"Quaisako" <jean_pierre_rome@hotmail.com> a écrit dans le message de
news:%23PbmwEnJGHA.2212@TK2MSFTNGP15.phx.gbl...
Bonjour le Forum,
Merci Lionel, mais malgré xxxx tentatives je ne parviens à rien.
Pour Ucase et Lcase, aucun souci, mais grosse prise de tête avec Proper.
Jipé
"Lionel" <notta.lionel@wanadoo.fr> a écrit dans le message de news:
43ddf873$0$6649$8fcfb975@news.wanadoo.fr...
Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas
présent,
pour éviter une nouvel appel deWorksheet_Change à chaque modification
de
cellule, je te conseille de placer dans le code
Application.EnableEvents
False, sans omettre de le positionner de nouveau à True avant la sortie
de
la procédure événementielle.
Amicalement
Lionel
"Quaisako" <jean_pierre_rome@hotmail.com> a écrit dans le message de
news:umew7YYJGHA.1424@TK2MSFTNGP12.phx.gbl...
Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target >> >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub
Bonjour Jipé,
Essaie ce code pour la procédure événementielle :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim Cell As Range
'
With Application
If Target.Text <> "" Then
.EnableEvents = False
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then
'Colonne des noms en majuscule.
Target = UCase(Target)
ElseIf Not Intersect(Target, Range("D6:D50")) Is Nothing Then
'Colonne des prénoms en NomPropre.
Target = Application.WorksheetFunction.Proper(Target)
End If
.EnableEvents = True
End If
End With
End Sub
Amicalement
Lionel
"Quaisako" a écrit dans le message de
news:%Bonjour le Forum,
Merci Lionel, mais malgré xxxx tentatives je ne parviens à rien.
Pour Ucase et Lcase, aucun souci, mais grosse prise de tête avec Proper.
Jipé
"Lionel" a écrit dans le message de news:
43ddf873$0$6649$Bonjour,
Même s'il ne faut pas l'utiliser à tort et à travers, dans la cas
présent,pour éviter une nouvel appel deWorksheet_Change à chaque modification
de
cellule, je te conseille de placer dans le code
Application.EnableEventsFalse, sans omettre de le positionner de nouveau à True avant la sortie
dela procédure événementielle.
Amicalement
Lionel
"Quaisako" a écrit dans le message de
news:Bonjour le Forum,
dans ce code, çà boucle sans arrêt.
où est l'erreur ?
Merci
Jipé
Private Sub Worksheet_Change(ByVal Target As Range)
'Colonne des noms en majuscule.
If Not Intersect(Target, Range("C7:C50")) Is Nothing Then Target >> >> UCase(Target)
'Colonne des prénoms en NomPropre.
Range("D6:D50").Select
For Each cell In Selection
cell.Value = Application.WorksheetFunction.Proper(cell.Value)
Next
End Sub