Récupérer adresse cellule pour sélection
bibi_fricotin
Messages postés
201
Statut
Membre
-
purrofixe Messages postés 490 Date d'inscription Statut Membre Dernière intervention -
purrofixe Messages postés 490 Date d'inscription Statut Membre Dernière intervention -
bonjour,
je voudrais séléctionner une plage de cellules qui contient le même nom, en partant de la cellule A10, la colonne A contenant les noms (ex A10=MARTIN; A11=BIBI;A12=BIBI;A13=DUPONT;etc.), pour les encadrer (donc pouvoir bien identifier chaque nom).
ça bloque après ELSE
Range("A10").Select
While ActiveCell.Value <> ""
Dim nom As String
Dim refnom As Range
If ActiveCell.Value = nom Then
Range(ActiveCell + 1).Select
Else
Range(Cells(refnom.Row, 1), Cells(ActiveCell.Row, 6)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
End If
Wend
Quelqu'un aurait-il une solution ?
Merci.
je voudrais séléctionner une plage de cellules qui contient le même nom, en partant de la cellule A10, la colonne A contenant les noms (ex A10=MARTIN; A11=BIBI;A12=BIBI;A13=DUPONT;etc.), pour les encadrer (donc pouvoir bien identifier chaque nom).
ça bloque après ELSE
Range("A10").Select
While ActiveCell.Value <> ""
Dim nom As String
Dim refnom As Range
If ActiveCell.Value = nom Then
Range(ActiveCell + 1).Select
Else
Range(Cells(refnom.Row, 1), Cells(ActiveCell.Row, 6)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
End If
Wend
Quelqu'un aurait-il une solution ?
Merci.
A voir également:
- Récupérer adresse cellule pour sélection
- Adresse mac - Guide
- Recuperer message whatsapp supprimé - Guide
- Darkino nouvelle adresse - Guide
- Changer adresse dns - Guide
- Comment connaître son adresse ip - Guide
14 réponses
pardon oui c'est du VB excel 97
pour le 'nom", on est d'identifier la 1ère cellule pour la comparer à la suivante : si la suivante comporte le même nom, il faut passer à la suivante, etc.
Une fois identifié le groupe de cellules ayant le même nom, il faut l'encadrer d'un trait plein, lui appliqué une mise en forme donc.
ouf! j'espère que c'est assez clair (ce genre de macro était plus simple à faire avec les macros excel4)
pour le 'nom", on est d'identifier la 1ère cellule pour la comparer à la suivante : si la suivante comporte le même nom, il faut passer à la suivante, etc.
Une fois identifié le groupe de cellules ayant le même nom, il faut l'encadrer d'un trait plein, lui appliqué une mise en forme donc.
ouf! j'espère que c'est assez clair (ce genre de macro était plus simple à faire avec les macros excel4)
Bonjour bibi_fricotin
Je suppose que c'est Excel VBA ....
Que voulez-vous encadrer exactement ?
Vous dites: ça bloque après ELSE ..mais avec le début de la macro qui manque.....
et en plus dans If ActiveCell.Value = nom Then le "nom" est initialisé ou ...
Merci de préciser.
Salutations
Jean-Pierre
Je suppose que c'est Excel VBA ....
Que voulez-vous encadrer exactement ?
Vous dites: ça bloque après ELSE ..mais avec le début de la macro qui manque.....
et en plus dans If ActiveCell.Value = nom Then le "nom" est initialisé ou ...
Merci de préciser.
Salutations
Jean-Pierre
Bonsoir bibi_fricotin,
Merci pour les précisions c'est parfait.
Pour pouvoir vous répondre correctement j'ai besoin de voir
toute la fonction (Sub Macro1()...... à.....End sub),
car j'ai déjà découvert quelque élément bizarre..
Faite donc un copier / coller; Merci.
Salutations
Jean-Pierre
Merci pour les précisions c'est parfait.
Pour pouvoir vous répondre correctement j'ai besoin de voir
toute la fonction (Sub Macro1()...... à.....End sub),
car j'ai déjà découvert quelque élément bizarre..
Faite donc un copier / coller; Merci.
Salutations
Jean-Pierre
Bonsoir bibi_fricotin,
Merci. Super votre macro pour ouvrir successivement tous les fichiers d’un répertoire.
Vous voulez donc y insérer une procédure pour encadrer le ou les noms qui se suivent pour chaque fichier.
Les noms commencent toujours dès la cellule « A10 » >> oui-non
Je suis en train de tester la partie qui vous intéresse, soit celle qui correspond à votre premier message.
J’ai juste un problème avec « refnom » car il manque une instruction.
Le résultat pour demain.
Salutations
Jean-Pierre
Merci. Super votre macro pour ouvrir successivement tous les fichiers d’un répertoire.
Vous voulez donc y insérer une procédure pour encadrer le ou les noms qui se suivent pour chaque fichier.
Les noms commencent toujours dès la cellule « A10 » >> oui-non
Je suis en train de tester la partie qui vous intéresse, soit celle qui correspond à votre premier message.
J’ai juste un problème avec « refnom » car il manque une instruction.
Le résultat pour demain.
Salutations
Jean-Pierre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir bibi_fricotin,
Je suppose que vous avez pensé de d’abord trier les noms (il doivent se suivre alphabétiquement, sinon Xavier une fois au début et aussi à la fin…).
Vous pouvez placer cette macro dans votre module et remplacer la partie correspondante par l’instruction : Application.Run "bibi_fricotin_encadrer"
Si vous la placée directement dans votre procédure vous supprimez les lignes :
Sub bibi_fricotin_encadrer() et End Sub.
Voici ma participation :
Bonne fin de semaine.
Salutations
Jean-Pierre
Je suppose que vous avez pensé de d’abord trier les noms (il doivent se suivre alphabétiquement, sinon Xavier une fois au début et aussi à la fin…).
Vous pouvez placer cette macro dans votre module et remplacer la partie correspondante par l’instruction : Application.Run "bibi_fricotin_encadrer"
Si vous la placée directement dans votre procédure vous supprimez les lignes :
Sub bibi_fricotin_encadrer() et End Sub.
Voici ma participation :
Sub bibi_fricotin_encadrer()
'
' Macro enregistrée le 12.11.2004 par Jean-Pierre Purro
'Récupérer la plage des noms et le nombre , début Li 5, dans Col A
vPlageNom = Range("A5:A" & Range("A5").End(xlDown).Row)
vNbNom = Range("A5").End(xlDown).Row - (5 - 1)
vDéNomX = 5
vFiNomX = 5
vCount = 1
'Début boucle sur nom
For Each vNom In vPlageNom
'Nom suivant différent >> encadrer la plage
If Cells(vDéNomX + vCount, 1).Value <> vNom Then
Range(Cells(vDéNomX, 1), Cells(vFiNomX, 1)).Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
'Icrémenter les compteurs début, comptage et fin
Let vDéNomX = vDéNomX + vCount
Let vCount = 1
Let vFiNomX = vDéNomX
Else
'Incrémenter les compteurs fin et comptage
Let vCount = vCount + 1
Let vFiNomX = vFiNomX + 1
End If
Next vNom
End Sub
Bonne fin de semaine.
Salutations
Jean-Pierre
j'ai donc essayé ta macro : elle marche super bien
j'ai rajouté une condition au cas où la première cellule serait vide
pour cette ligne : Range(Cells(vDéNomX, 1), Cells(vFiNomX, 1)).Select
comment pourrait-on l'écrire pour sélectionner de la colonne A à une autre colonne ?
merci encore
j'ai rajouté une condition au cas où la première cellule serait vide
pour cette ligne : Range(Cells(vDéNomX, 1), Cells(vFiNomX, 1)).Select
comment pourrait-on l'écrire pour sélectionner de la colonne A à une autre colonne ?
merci encore
Bonsoir bibi_fricotin,
Merci pour le message.
Par principe la première cellule de la plage à encadrer ne doit pas être vide, enfin c’est vous qui savez ou doit commencer le travail.
De toute manière elle serait comprise dans la vPlageNom et de ce fait serait traité comme un nom vide, donc pas de condition en plus.
Si nécessaire vous pouvez me joindre @@ sans problème.
Cette demande n’est pas clair (comment pourrait-on l'écrire pour sélectionner de la colonne A à une autre colonne ?)…
Si référence à Range(……), il s’agit de référence L1C1 (L>>ligne et C>> colonne)
Dans se cas pour la colonne « H » c’est la valeur 8 ; (Range(Cells(vDéNomX, 8), Cells(vFiNomX, 8)).Select).
Salutations
Jean-Pierre
Merci pour le message.
Par principe la première cellule de la plage à encadrer ne doit pas être vide, enfin c’est vous qui savez ou doit commencer le travail.
De toute manière elle serait comprise dans la vPlageNom et de ce fait serait traité comme un nom vide, donc pas de condition en plus.
Si nécessaire vous pouvez me joindre @@ sans problème.
Cette demande n’est pas clair (comment pourrait-on l'écrire pour sélectionner de la colonne A à une autre colonne ?)…
Si référence à Range(……), il s’agit de référence L1C1 (L>>ligne et C>> colonne)
Dans se cas pour la colonne « H » c’est la valeur 8 ; (Range(Cells(vDéNomX, 8), Cells(vFiNomX, 8)).Select).
Salutations
Jean-Pierre
Bonsoir bibi_fricotin,
Simplement:
1- en L1C1 >>> range(Cells(10,1),Cells(11,5); je l'utilise de préférence lorsque j'utilise les valeurs de compteur, c'est plus direct.
ou alors
2- en A1 >>>> Range("A10:E11")
Salutations
Jean-Pierre
Simplement:
1- en L1C1 >>> range(Cells(10,1),Cells(11,5); je l'utilise de préférence lorsque j'utilise les valeurs de compteur, c'est plus direct.
ou alors
2- en A1 >>>> Range("A10:E11")
Salutations
Jean-Pierre
Bonsoir bibi_fricotin,
Merci pour le message.
Par curiosité j’ai contrôlé votre ajout et voici mon commentaire :
1.-
La plage à travailler est récupéré (les noms et par définition son nombre) directement dans l’instruction : vPlageNom = Range(« A10……………….) et vNbNom = Range(…….), a noté que vNbNom n’est pas utilisé dans cette procédure et peut être supprimer.
2.-
La base de départ est fixé comme suit : la plage des noms, début Li 10, dans Col A, de ce fait la deuxième instruction (Range("A10").Select), juste devant 'Récupérer la plage….. , est inutile.
3.-
Votre instruction : If ActiveCell.Value <> "" Then, fait terminer la procédure si la cellule est vide >>> donc pas d’encadrement pour les noms qui suivent !!!!!
A mon avis, cette instruction est parfaitement inutile, car s’il s’agit ensuite de faire un tri, il suffit de le prévoir sur une plage sans titre de colonne.
4.-
Pour effectuer un tri, il faut sélectionné une plage de cellule (avec ou sans titre de colonne) et ensuite vous pouvez donné l’instruction : Selection.Sort Key1:=Range("B10")……., dans votre cas vous recevez une erreur d’exécution ‘1004’ >> Référence de tri non valide.
A vous de contrôler ce problème car je ne connais pas la structure de votre base de données.
Au cas ou, vous savez ou me joindre @ si nécessaire.
Bonne semaine
Salutations
Jean-Pierre
Merci pour le message.
Par curiosité j’ai contrôlé votre ajout et voici mon commentaire :
1.-
La plage à travailler est récupéré (les noms et par définition son nombre) directement dans l’instruction : vPlageNom = Range(« A10……………….) et vNbNom = Range(…….), a noté que vNbNom n’est pas utilisé dans cette procédure et peut être supprimer.
2.-
La base de départ est fixé comme suit : la plage des noms, début Li 10, dans Col A, de ce fait la deuxième instruction (Range("A10").Select), juste devant 'Récupérer la plage….. , est inutile.
3.-
Votre instruction : If ActiveCell.Value <> "" Then, fait terminer la procédure si la cellule est vide >>> donc pas d’encadrement pour les noms qui suivent !!!!!
A mon avis, cette instruction est parfaitement inutile, car s’il s’agit ensuite de faire un tri, il suffit de le prévoir sur une plage sans titre de colonne.
4.-
Pour effectuer un tri, il faut sélectionné une plage de cellule (avec ou sans titre de colonne) et ensuite vous pouvez donné l’instruction : Selection.Sort Key1:=Range("B10")……., dans votre cas vous recevez une erreur d’exécution ‘1004’ >> Référence de tri non valide.
A vous de contrôler ce problème car je ne connais pas la structure de votre base de données.
Au cas ou, vous savez ou me joindre @ si nécessaire.
Bonne semaine
Salutations
Jean-Pierre
voilà la bête, avec une boucle qui ouvrent tous les fichiers d'un répertoire (merci à http://vlohr.free.fr )
Sub Boucle_sur_fichier()
'Application.ScreenUpdating = False
Dim Cherche As Variant
Dim Boucle As Variant
Set Cherche = Application.FileSearch
With Cherche
.LookIn = "C:\data\g8_\fdp\"
.FileName = "*.xls"
If .Execute > 0 Then
For Boucle = 1 To .FoundFiles.Count
Workbooks.OpenText FileName:=.FoundFiles(Boucle), Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 2), Array(5, 1), Array(6, 1))
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$9"
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = "&P/&N"
.RightFooter = "&F &D"
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
End With
Columns("A:A").Select
Selection.ColumnWidth = 30
Columns("B:B").Select
Selection.ColumnWidth = 7
Columns("C:C").Select
Selection.ColumnWidth = 5
Columns("D:D").Select
Selection.ColumnWidth = 10
Columns("E:E").Select
Selection.ColumnWidth = 12
Columns("F:F").Select
Selection.ColumnWidth = 55
Cells.Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
With Selection.Font
.Name = "Arial"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
With Selection.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("A8").Select
Selection.Font.Bold = True
Rows("9:9").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Font.Bold = True
Rows("10:200").Select
Selection.RowHeight = 30
Range("A9").Select
If a10 <> "" Then
Selection.Sort Key1:=Range("B10"), Order1:=xlDescending, Key2:=Range( _
"A10"), Order2:=xlAscending, Key3:=Range("D10"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Else
End If
Range("A10").Select
While ActiveCell.Value <> ""
Dim nom As String
Dim refnom As Range
If ActiveCell.Value = nom Then
Range(ActiveCell + 1).Select
Else
Range(Cells(refnom.Row, 1), Cells(ActiveCell.Row, 6)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
End If
Wend
Range("B2").Select
Selection.ClearContents
Range("A1").Select
Next Boucle
End If
End With
End Sub
Sub Boucle_sur_fichier()
'Application.ScreenUpdating = False
Dim Cherche As Variant
Dim Boucle As Variant
Set Cherche = Application.FileSearch
With Cherche
.LookIn = "C:\data\g8_\fdp\"
.FileName = "*.xls"
If .Execute > 0 Then
For Boucle = 1 To .FoundFiles.Count
Workbooks.OpenText FileName:=.FoundFiles(Boucle), Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 2), Array(5, 1), Array(6, 1))
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$9"
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = "&P/&N"
.RightFooter = "&F &D"
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = True
.PrintComments = xlPrintNoComments
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
End With
Columns("A:A").Select
Selection.ColumnWidth = 30
Columns("B:B").Select
Selection.ColumnWidth = 7
Columns("C:C").Select
Selection.ColumnWidth = 5
Columns("D:D").Select
Selection.ColumnWidth = 10
Columns("E:E").Select
Selection.ColumnWidth = 12
Columns("F:F").Select
Selection.ColumnWidth = 55
Cells.Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
With Selection.Font
.Name = "Arial"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
With Selection.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("A8").Select
Selection.Font.Bold = True
Rows("9:9").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Font.Bold = True
Rows("10:200").Select
Selection.RowHeight = 30
Range("A9").Select
If a10 <> "" Then
Selection.Sort Key1:=Range("B10"), Order1:=xlDescending, Key2:=Range( _
"A10"), Order2:=xlAscending, Key3:=Range("D10"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Else
End If
Range("A10").Select
While ActiveCell.Value <> ""
Dim nom As String
Dim refnom As Range
If ActiveCell.Value = nom Then
Range(ActiveCell + 1).Select
Else
Range(Cells(refnom.Row, 1), Cells(ActiveCell.Row, 6)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
End If
Wend
Range("B2").Select
Selection.ClearContents
Range("A1").Select
Next Boucle
End If
End With
End Sub
merci pour ta réponse
en fait, je voulais récupérer le nombre de lignes pour sélectionner une plage de cellules
voici la macro finie (ou presque, je vais rajouter un autorun et des messages dans la barre d'état).
encore merci et bonne journée.
'si A10 est vide passe au fichier suivant
Range("A10").Select
If ActiveCell.Value <> "" Then
Range("A9").Select
Selection.Sort Key1:=Range("B10"), Order1:=xlDescending, Key2:=Range("A10"), Order2:=xlAscending, Key3:=Range("D10"), Order3:=xlAscending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A10").Select
'Récupérer la plage des noms et le nombre , début Li 6, dans Col A
vPlageNom = Range("A10:A" & Range("A10").End(xlDown).Row)
vNbNom = Range("A10").End(xlDown).Row - (10 - 1)
vDéNomX = 10
vFiNomX = 10
vCount = 1
'Début boucle sur nom
For Each vNom In vPlageNom
'Nom suivant différent >> encadrer la plage
If Cells(vDéNomX + vCount, 1).Value <> vNom Then
Range(Cells(vDéNomX, 1), Cells(vFiNomX, 6)).Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'Icrémenter les compteurs début, comptage et fin
Let vDéNomX = vDéNomX + vCount
Let vCount = 1
Let vFiNomX = vDéNomX
Else
'Incrémenter les compteurs fin et comptage
Let vCount = vCount + 1
Let vFiNomX = vFiNomX + 1
End If
Next vNom
Else
End If
en fait, je voulais récupérer le nombre de lignes pour sélectionner une plage de cellules
voici la macro finie (ou presque, je vais rajouter un autorun et des messages dans la barre d'état).
encore merci et bonne journée.
'si A10 est vide passe au fichier suivant
Range("A10").Select
If ActiveCell.Value <> "" Then
Range("A9").Select
Selection.Sort Key1:=Range("B10"), Order1:=xlDescending, Key2:=Range("A10"), Order2:=xlAscending, Key3:=Range("D10"), Order3:=xlAscending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A10").Select
'Récupérer la plage des noms et le nombre , début Li 6, dans Col A
vPlageNom = Range("A10:A" & Range("A10").End(xlDown).Row)
vNbNom = Range("A10").End(xlDown).Row - (10 - 1)
vDéNomX = 10
vFiNomX = 10
vCount = 1
'Début boucle sur nom
For Each vNom In vPlageNom
'Nom suivant différent >> encadrer la plage
If Cells(vDéNomX + vCount, 1).Value <> vNom Then
Range(Cells(vDéNomX, 1), Cells(vFiNomX, 6)).Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'Icrémenter les compteurs début, comptage et fin
Let vDéNomX = vDéNomX + vCount
Let vCount = 1
Let vFiNomX = vDéNomX
Else
'Incrémenter les compteurs fin et comptage
Let vCount = vCount + 1
Let vFiNomX = vFiNomX + 1
End If
Next vNom
Else
End If