Macro - Mise en majuscule automatique d'une colonne

Bonjour,

J'ai cette macro qui fonctionne bien mais il y a un bug quand je supprime le texte de la cellule.

'Pour mettre automatiquement la colonne F en majuscule
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 Then
Target.Value = UCase(Target.Value)
End If
End Sub

Pouvez-vous m'aider ?

Salutations,

Thierry

Bonjour

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 5 And Target.Value <> "" Then
    Target.Value = UCase(Target.Value)
  End If
End Sub

Bonjour M12,

Ça fonctionne parfaitement bien.

Merci beaucoup et bonnes fêtes de fin d'année !

Je me suis avancé trop vite; il fonctionne bien jusqu'à ce que je veuille insérer une ligne:

Option Explicit

'Pour insérer une ligne


Sub insertionLigne()
With ActiveCell
.EntireRow.Insert xlShiftDown 'Insert une ligne au dessus
End With
End Sub

'Pour insérer la date du jour

Sub InsertDate()
ActiveCell = Date
End Sub

'Pour imprimer sans les lignes vides


Sub ImprimeSansVide()
Dim Plage As Range
On Error Resume Next
Application.ScreenUpdating = False
With ActiveSheet
Set Plage = .Range("C3:C250").Cells.SpecialCells(xlCellTypeBlanks)
If Not Plage Is Nothing Then Plage.Rows.Hidden = True
.PrintPreview 'pour voir sans imprimer
'.PrintOut 'pour imprimer directement
.Rows.Hidden = False
End With
End Sub

'Pour mettre automatiquement une colonne en majuscule


Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 5 And Target.Value <> "" Then
Target.Value = UCase(Target.Value)
End If
End Sub

Bonjour,

Sans voir un exemple de classeur et son explication de fonctionnement, je n'en ferai pas plus

Il est malheureusement trop volumineux:

sans titre

Voici le code actuel mais il y a une erreur lorsque je veux insérer les 3 lignes:

Option Explicit

'Pour insérer 3 lignes vides


Sub insertion2()
ActiveCell.Offset(1, 0).EntireRow.Resize(3).Insert Shift:=xlDown
End Sub

'Pour insérer la date du jour

Sub InsertDate()
ActiveCell = Date
End Sub

'Pour imprimer sans les lignes vides


Sub ImprimeSansVide()
Dim Plage As Range
On Error Resume Next
Application.ScreenUpdating = False
With ActiveSheet
Set Plage = .Range("C3:C250").Cells.SpecialCells(xlCellTypeBlanks)
If Not Plage Is Nothing Then Plage.Rows.Hidden = True
.PrintPreview 'pour voir sans imprimer
'.PrintOut 'pour imprimer directement
.Rows.Hidden = False
End With
End Sub

'Pour mettre le texte de la colonne F en majuscule


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 5 And Target.Value <> "" Then
Target.Value = UCase(Target.Value)
End If
End Sub

Re,

Bonjour M12,

Essaie ainsi:

Sub insertion2()
 Application.EnableEvents = False
  ActiveCell.Offset(1, 0).EntireRow.Resize(3).Insert Shift:=xlDown
 Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
 On Error GoTo fin
  If Target.Column = 5 And Target.Value <> "" Then
    Target.Value = UCase(Target.Value)
  End If
fin:
 Exit Sub
End Sub
12classeur1.xlsm (20.33 Ko)

Cordialement,

Il n'y a rien à dire si ce n'est que vous êtes doué !

J'ai pourtant suivi un cours de VBA il y a bientôt 15 ans mais jamais je n'arriverai à votre niveau.

Merci infiniment pour votre aide. Bonne fin de semaine !

Thierry

Rechercher des sujets similaires à "macro mise majuscule automatique colonne"