Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lors d'un tri alphabétique insérer des onglets(lignes) alphabétiques

10 réponses
Avatar
sab
Bonjour,
J'ai un bouton associé à une macro qui tri la colone A par ordre
alphabétique je voudrais qu'en meme temps il m'insère des lignes de
repè re alphabétique (A, B, C ...) lors de ce tri pour que ce soit
moins confus..
Merci par avance si cela est possible!!!

10 réponses

Avatar
Iznogood1
On 27 juin, 11:37, sab wrote:
Bonjour,
J'ai un bouton associé à une macro qui tri la colone A par ordre
alphabétique je voudrais qu'en meme temps il m'insère des lignes de
repè re alphabétique (A, B, C ...) lors de ce tri pour que ce soit
moins confus..
Merci par avance si cela est possible!!!




An supposant que A1 contienne le titre de la colonne :

Sub Tri_Insert()
Dim nbLi As Integer
Dim premierChar As String

nbLi = [A1].CurrentRegion.Rows.Count
If nbLi = 1 Then Exit Sub

Range("A2:A" & nbLi).Sort Key1:=Range("A2"), Order1:=xlAscending


premierChar = UCase(Left([a2].Value, 1))
[a2].EntireRow.Insert
[a2].Value = premierChar
Range("A2").Font.Bold = True


Do While Not IsEmpty(Range("A" & nbLi))
If UCase(Left(Range("A" & nbLi).Value, 1)) <> premierChar
Then
premierChar = UCase(Left(Range("A" & nbLi).Value, 1))
Range("A" & nbLi).EntireRow.Insert
Range("A" & nbLi).Value = premierChar
Range("A" & nbLi).Font.Bold = True
End If
nbLi = nbLi + 1
Loop


End Sub
Avatar
sab
Iznogood1 a écrit :
On 27 juin, 11:37, sab wrote:




An supposant que A1 contienne le titre de la colonne :

Sub Tri_Insert()
Dim nbLi As Integer
Dim premierChar As String

nbLi = [A1].CurrentRegion.Rows.Count
If nbLi = 1 Then Exit Sub

Range("A2:A" & nbLi).Sort Key1:=Range("A2"), Order1:=xlAscending


premierChar = UCase(Left([a2].Value, 1))
[a2].EntireRow.Insert
[a2].Value = premierChar
Range("A2").Font.Bold = True


Do While Not IsEmpty(Range("A" & nbLi))
If UCase(Left(Range("A" & nbLi).Value, 1)) <> premierChar
Then
premierChar = UCase(Left(Range("A" & nbLi).Value, 1))
Range("A" & nbLi).EntireRow.Insert
Range("A" & nbLi).Value = premierChar
Range("A" & nbLi).Font.Bold = True
End If
nbLi = nbLi + 1
Loop


End Sub



Bonjour et merci,

Malheureusement cela ne fonctionne pas...cela me dit
Avatar
sab
Bonjour et merci
mais quand j'execute votre code cela me dit erreur de compilation :
erreur de syntaxe...et cela me met :
"If UCase(Left(Range("A" & nbLi).Value, 1)) <> premierChar
Then"
en surlignage.
Que dois je faire?Par avance merci


Peut etre parce que j'ai omis de vous dire qu'il y a 2 lignes de titre
et donc le tableau commence à la ligne 3.

An supposant que A1 contienne le titre de la colonne :

Sub Tri_Insert()
Dim nbLi As Integer
Dim premierChar As String

nbLi = [A1].CurrentRegion.Rows.Count
If nbLi = 1 Then Exit Sub

Range("A2:A" & nbLi).Sort Key1:=Range("A2"), Order1:=xlAscending


premierChar = UCase(Left([a2].Value, 1))
[a2].EntireRow.Insert
[a2].Value = premierChar
Range("A2").Font.Bold = True


Do While Not IsEmpty(Range("A" & nbLi))
If UCase(Left(Range("A" & nbLi).Value, 1)) <> premierChar
Then
premierChar = UCase(Left(Range("A" & nbLi).Value, 1))
Range("A" & nbLi).EntireRow.Insert
Range("A" & nbLi).Value = premierChar
Range("A" & nbLi).Font.Bold = True
End If
nbLi = nbLi + 1
Loop


End Sub


Avatar
Fredo P
Bonsoir
Tu peux après avoir exécuter le tri, employer cette macro.
La première boucle supprime les éventuelles Lignes vides.

Sub repère()
Dim c As Object, d As Object
For Each c In Range("A1:A" & Range("A65536").End(3).Row)
If Application.CountA(Rows(c.Row)) = 0 Then
Rows(c.Row).Delete
End If
Next c
For Each c In Range("A1:A" & Range("A65536").End(3).Row)
If Not d Is Nothing Then
If Left(c, 1) <> Left(d, 1) Then
Rows(c.Row).Insert shift:=xlDown
c.Font.Bold = True
Else
c.Offset(1, 0).Font.Bold = False
End If
End If
Set d = c
Next c
End Sub

"sab" a écrit dans le message de news:

Bonjour,
J'ai un bouton associé à une macro qui tri la colone A par ordre
alphabétique je voudrais qu'en meme temps il m'insère des lignes de repè
re alphabétique (A, B, C ...) lors de ce tri pour que ce soit moins
confus..
Merci par avance si cela est possible!!!




Avatar
sab
Bonjour

Et merci
Quand j'execute la macro j'ai une alerte d'erreur 1004:

La methode classe range de insert a échoué

Le debogage me surligne en jaune:
Rows(c.Row).insert shift:=xlDown

Une idée? pour moi c'est du chinois!!
Merci





Fredo P a écrit :
Bonsoir
Tu peux après avoir exécuter le tri, employer cette macro.
La première boucle supprime les éventuelles Lignes vides.

Sub repère()
Dim c As Object, d As Object
For Each c In Range("A1:A" & Range("A65536").End(3).Row)
If Application.CountA(Rows(c.Row)) = 0 Then
Rows(c.Row).Delete
End If
Next c
For Each c In Range("A1:A" & Range("A65536").End(3).Row)
If Not d Is Nothing Then
If Left(c, 1) <> Left(d, 1) Then
Rows(c.Row).Insert shift:=xlDown
c.Font.Bold = True
Else
c.Offset(1, 0).Font.Bold = False
End If
End If
Set d = c
Next c
End Sub

"sab" a écrit dans le message de news:

Bonjour,
J'ai un bouton associé à une macro qui tri la colone A par ordre
alphabétique je voudrais qu'en meme temps il m'insère des lignes de repè re
alphabétique (A, B, C ...) lors de ce tri pour que ce soit moins confus..
Merci par avance si cela est possible!!!






Avatar
Fredo P
Est ce que l'échec se reproduit sur le fichier ci-joint?
http://cjoint.com/?gDiq6JgSAc

Le debogage me surligne en jaune:
Rows(c.Row).insert shift:=xlDown

Une idée? pour moi c'est du chinois!!
Merci





Fredo P a écrit :
Bonsoir
Tu peux après avoir exécuter le tri, employer cette macro.
La première boucle supprime les éventuelles Lignes vides.

Sub repère()
Dim c As Object, d As Object
For Each c In Range("A1:A" & Range("A65536").End(3).Row)
If Application.CountA(Rows(c.Row)) = 0 Then
Rows(c.Row).Delete
End If
Next c
For Each c In Range("A1:A" & Range("A65536").End(3).Row)
If Not d Is Nothing Then
If Left(c, 1) <> Left(d, 1) Then
Rows(c.Row).Insert shift:=xlDown
c.Font.Bold = True
Else
c.Offset(1, 0).Font.Bold = False
End If
End If
Set d = c
Next c
End Sub

"sab" a écrit dans le message de news:

Bonjour,
J'ai un bouton associé à une macro qui tri la colone A par ordre
alphabétique je voudrais qu'en meme temps il m'insère des lignes de repè
re alphabétique (A, B, C ...) lors de ce tri pour que ce soit moins
confus..
Merci par avance si cela est possible!!!










Avatar
P.Bastard
Bonjour, sab.

Dans un cas pareil, je ne me complique pas la vie :
A, B, C... Z en fin de colonne (une lettre par ligne), et je trie l'ensemble
ensuite.
Basique, mais efficace et rapide (cela fait 3 jours que tu es dessus).

Et si tu dois le faire souvent, crée une liste personnelle A, B, ...., Z qui
te permettra une recopie incrémentée.
Aussi efficace, et encore plus rapide.
;-)
Qu'en penses-tu ?
Bien cordialement,

Patrick.

"sab" a écrit dans le message de
news:
Bonjour,
J'ai un bouton associé à une macro qui tri la colone A par ordre
alphabétique je voudrais qu'en meme temps il m'insère des lignes de repè
re alphabétique (A, B, C ...) lors de ce tri pour que ce soit moins
confus..
Merci par avance si cela est possible!!!




Avatar
sab
P.Bastard a écrit :
Bonjour, sab.

Dans un cas pareil, je ne me complique pas la vie :
A, B, C... Z en fin de colonne (une lettre par ligne), et je trie l'ensemble
ensuite.
Basique, mais efficace et rapide (cela fait 3 jours que tu es dessus).

Et si tu dois le faire souvent, crée une liste personnelle A, B, ...., Z qui
te permettra une recopie incrémentée.
Aussi efficace, et encore plus rapide.
;-)
Qu'en penses-tu ?
Bien cordialement,

Patrick.

"sab" a écrit dans le message de
news:
Bonjour,
J'ai un bouton associé à une macro qui tri la colone A par ordre
alphabétique je voudrais qu'en meme temps il m'insère des lignes de repè re
alphabétique (A, B, C ...) lors de ce tri pour que ce soit moins confus..
Merci par avance si cela est possible!!!







Bonjour,
Merci;pas bete le coup des lignes A B C etc...........
Sinon que veux tu dire par liste personnelle? Je sais cela doit etre
nulle comme question...C'est une liste que je vais incorporer dans mon
tableau??ou pas??
Ca m'interresse car le coup des lignes c'est super mais comme je trie
aussi parfois par la colonne "date" (colonne C) que vont faire les
lignes A,B,C etc...j'aimerais bien que dans ce cas elles disparaissent
Avatar
P.Bastard
Bonsoir, sab

1° - Outils, options, onglet Listes pers.
je l'utilise personnellement pour remplir rapidement une colonne ou une
ligne avec les noms des salariés de mon service (Adam, Bernard, Chloé,
...Zébulon)
Il suffit de saisir Adam dans la 1° cellule et de tirer vers le bas ou vers
la droite, ça évite de saisir tous les noms chaque fois.

2° - Si tu places tes lettres en colonne A (B restant vide), et que tu tries
sur la colonne B, tes lettres seront toutes en fin de tableau.

Cordialement,

Patrick.

"sab" a écrit dans le message de
news:
P.Bastard a écrit :
Bonjour, sab.

Dans un cas pareil, je ne me complique pas la vie :
A, B, C... Z en fin de colonne (une lettre par ligne), et je trie
l'ensemble ensuite.
Basique, mais efficace et rapide (cela fait 3 jours que tu es dessus).

Et si tu dois le faire souvent, crée une liste personnelle A, B, ...., Z
qui te permettra une recopie incrémentée.
Aussi efficace, et encore plus rapide.
;-)
Qu'en penses-tu ?
Bien cordialement,

Patrick.

"sab" a écrit dans le message de
news:
Bonjour,
J'ai un bouton associé à une macro qui tri la colone A par ordre
alphabétique je voudrais qu'en meme temps il m'insère des lignes de repè
re alphabétique (A, B, C ...) lors de ce tri pour que ce soit moins
confus..
Merci par avance si cela est possible!!!







Bonjour,
Merci;pas bete le coup des lignes A B C etc...........
Sinon que veux tu dire par liste personnelle? Je sais cela doit etre nulle
comme question...C'est une liste que je vais incorporer dans mon
tableau??ou pas??
Ca m'interresse car le coup des lignes c'est super mais comme je trie
aussi parfois par la colonne "date" (colonne C) que vont faire les lignes
A,B,C etc...j'aimerais bien que dans ce cas elles disparaissent




Avatar
sab
Bonjour,

Et merci c'est en effet une solution simple et qui fonctionne
parfaitement...



P.Bastard a écrit :
Bonsoir, sab

1° - Outils, options, onglet Listes pers.
je l'utilise personnellement pour remplir rapidement une colonne ou une ligne
avec les noms des salariés de mon service (Adam, Bernard, Chloé, ...Zébulon)
Il suffit de saisir Adam dans la 1° cellule et de tirer vers le bas ou vers
la droite, ça évite de saisir tous les noms chaque fois.

2° - Si tu places tes lettres en colonne A (B restant vide), et que tu tries
sur la colonne B, tes lettres seront toutes en fin de tableau.

Cordialement,

Patrick.

"sab" a écrit dans le message de
news:
P.Bastard a écrit :
Bonjour, sab.

Dans un cas pareil, je ne me complique pas la vie :
A, B, C... Z en fin de colonne (une lettre par ligne), et je trie
l'ensemble ensuite.
Basique, mais efficace et rapide (cela fait 3 jours que tu es dessus).

Et si tu dois le faire souvent, crée une liste personnelle A, B, ...., Z
qui te permettra une recopie incrémentée.
Aussi efficace, et encore plus rapide.
;-)
Qu'en penses-tu ?
Bien cordialement,

Patrick.