VBA Majuscule et recherche cellule non vide

Bonsoir

Un nouveau fichier test où je voudrais d'une part que les noms entrés dans les cellules s'écrivent directement en majuscule et d'autre part en cliquant deux fois sur 'importe quel endroit le curseur se place juste après la dernière cellule remplie.

Projet joint..

Merci

Lingo

7majuscule-et.xlsm (14.88 Ko)

Bonsoir,

Le code pour majuscule à mettre dans la feuille concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:J21")) Is Nothing Then
        Target = UCase(Target)
    End If
End Sub

Bonjour,

à tester,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C2:J21")) Is Nothing Then
  Application.EnableEvents = False
  Target = UCase(Target)
  Application.Goto Cells(Target.Row + 1, Target.Column)
  Application.EnableEvents = True
End If
End Sub

Bonjour,

à tester,

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C2:J21")) Is Nothing Then
  Application.EnableEvents = False
  Target = UCase(Target)
  Application.Goto Cells(Target.Row + 1, Target.Column)
  Application.EnableEvents = True
End If
End Sub

Magnifique,

Seulement il est difficile de savoir si la dernière case rempli est la cellule de dessus ou de droite, afin que l'on bouge en descendant comme tu l'as fait ou ou vers la gauche avec

Application.Goto Cells(Target.Row, Target.Column + 1) 

ou à la fois en dessous et à gauche

 
Application.Goto Cells(Target.Row + 1, Target.Column + 1)

Cordialement.

Seulement il est difficile de savoir si la dernière case rempli est la cellule de...

la dernière case rempli est Target

reste à savoir dans quel direction tu veux aller.

tu pourrais utiliser une variable public pour stoker le range Target et te servir de cette variable sur l'événement double clic

Public rng As Range

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.Goto Cells(rng.Row + 1, rng.Column)
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C2:J21")) Is Nothing Then
  Application.EnableEvents = False
  Set rng = Target
  Target = UCase(Target)
  Application.EnableEvents = True
End If
End Sub

Salut tout le monde,

juste pour jouer quelques minutes...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim iOK%
'
If Not Intersect(Target, Range("C2:J21")) Is Nothing Then
    Cancel = True
    If [J21] <> "" Then
        MsgBox "Tableau rempli !"
    Else
        For x = 21 To 2 Step -1
            For y = IIf(x = 21, 9, 10) To 3 Step -1
                If Cells(x, y) <> "" Then
                    iOK = 1
                    Cells(IIf(y = 10, x + 1, x), IIf(y = 10, 3, y + 1)).Select
                    Exit For
                End If
            Next
            If iOK = 1 Then Exit For
        Next
        If iOK = 0 Then [C2].Select
    End If
End If
'
End Sub

A+

Rechercher des sujets similaires à "vba majuscule recherche vide"