Majuscule et tri

kaki31

XLDnaute Occasionnel
Bonsoir;

je viens de trouver ce code pour le tri a la saisie qui est super,et je voudrais savoir s'il est possible d'incorporer quelques lignes pour la majuscule sauf pour la colonne D et la colonne G.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
nom = Target
[A2:C1000].Sort key1:=[A2]
[A:A].Find(what:=nom).Select
End If
End Sub


Merci :)
 

job75

XLDnaute Barbatruc
Re : Majuscule et tri

Bonsoir kaki31, salut Pierrot, avec mes meilleurs voeux pour 2012 :)

Vous pouvez mettre cette macro dans le code de la feuille :

Code:
Sub Majuscules()
Dim h&, tablo, ub As Byte, i&, j As Byte
h = [A65536].End(xlUp).Row - 1
If h = 0 Then Exit Sub
tablo = [A2:G2].Resize(h) 'matrice => exécution plus rapide
ub = UBound(tablo, 2)
For i = 1 To UBound(tablo)
  For j = 1 To ub
    If j <> 4 And j <> 7 Then tablo(i, j) = UCase(tablo(i, j))
  Next
Next
Application.EnableEvents = False 'désactive l'action des événements
[A2:G2].Resize(h) = tablo
Application.EnableEvents = True
End Sub
Vous la lancez comme et quand vous voulez.

Vous pouvez même l'appeler à la fin de la macro Worksheet_Change par :

Code:
Call Majuscules
Edit : en fait les 2 Application.EnableEvents sont inutiles.

Avec le test Target.Count = 1 dans Worksheet_Change aucun risque...

A+
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Majuscule et tri

Bonsoir à tous

kaki31
Tu l'as copié ou le code ?

Dans la feuille concernée (comme le précisais Job75) ou un module standard ?

Pour le copier au bon emplacement, faire un clic-droit sur l'onglet et choisir Visualiser le code
c'est là qu'il faut copier le code VBA , dans la partie blanche à droite de l'écran.
 

Staple1600

XLDnaute Barbatruc
Re : Majuscule et tri

Re


Si cela fonctionne mais bizarrement sur mon PC.
Tu as le code ci-dessous dans le code de la feuille?
Code:
Option Explicit
Sub Majuscules()
Dim h&, tablo, ub As Byte, i&, j As Byte
h = [A65536].End(xlUp).Row - 1
If h = 0 Then Exit Sub
tablo = [A2:G2].Resize(h) 'matrice => exécution plus rapide
ub = UBound(tablo, 2)
For i = 1 To UBound(tablo)
  For j = 1 To ub
    If j <> 4 And j <> 7 Then tablo(i, j) = UCase(tablo(i, j))
  Next
Next
'Application.EnableEvents = False 'désactive l'action des événements
[A2:G2].Resize(h) = tablo
'Application.EnableEvents = True
End Sub
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Majuscules
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Majuscule et tri

Re


Tu as essayé de mixer les deux codes ?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
nom = Target
[A2:C1000].Sort key1:=[A2]
[A:A].Find(what:=nom).Select
End If
Call Majuscules
End Sub
 

job75

XLDnaute Barbatruc
Re : Majuscule et tri

Bonjour le fil, le forum,

Pourtant pas sorcier...

Voir le fichier joint.

Si l'on utilise l'instruction Option Explicit :

- elle doit être placée en haut de la feuille de code

- dans Worksheet_Change la variable nom doit être déclarée.

A+
 

Pièces jointes

  • Tri et Majuscule a la saisie(1).xls
    36 KB · Affichages: 61

Discussions similaires

Statistiques des forums

Discussions
312 837
Messages
2 092 660
Membres
105 482
dernier inscrit
Eric.FKF