Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Numéro de ligne variable dans Range

  • Initiateur de la discussion Initiateur de la discussion elwinner08
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

elwinner08

Guest
Bonjour à tous,
J'ai cherché sur divers forums en trouvant des réponses approchées mais qui ne marchaient pas chez moi 😡 .

J'ai un test sur une cellule, si la cellule est renseignée, la macro doit sélectionner les cases de cette ligne des colonnes A à AV pour mettre en forme un tableau. J'ai testé plusieurs choses et rien ne marche 🙁

Merci pour le temps que vous allez passer à m'aider

Dim l As Integer

For l = 1 To 500
If Cells(l, 2) <> "" Then
Range("A" & l:"AV" & l).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
Next l

Edit : le "For l = 1 to 500" n'est là que pour faire le test sur les 500 lignes

PS : Je viens de me rendre compte qu'en plus de ça je ne sais pas insérer un cadre "code" dans mon post pour y mettre la macro
 
Dernière modification par un modérateur:
Re : Numéro de ligne variable dans Range

Bonjour Elwinner, Pierrot, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim l As Integer
 
For l = 1 To Cells(Application.Rows.Count, 1).End(xlUp).Row
    If Cells(l, 2) <> "" Then
        With Range(Cells(l, 1), Cells(l, 48))
            .Borders(xlDiagonalDown).LineStyle = xlNone
            .Borders(xlDiagonalUp).LineStyle = xlNone
            With .Borders(xlEdgeLeft)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            .Borders(xlEdgeTop).LineStyle = xlNone
            With .Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With .Borders(xlEdgeRight)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
            With .Borders(xlInsideVertical)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = xlAutomatic
            End With
        End With
    End If
Next l
End Sub
 
Re : Numéro de ligne variable dans Range

Bonjour je pense avoir trouvé une solution (a mon niveau)

Je pense que d'autre pourront te fournir un code bien plus beau 🙂
Mais il fonctionne
Code:
Sub essai()

Dim a As String
Dim b As String
Dim c As String
For l = 1 To 500
If Cells(l, 2) <> "" Then
a = ("A" & l)
b = ("AV" & l)
c = (a & ":" & b)
Range(c).Select
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
Next l

End Sub

voila. Bonne journée
 
Re : Numéro de ligne variable dans Range

Merci beaucoup à vous deux. La solution de Robert marche super bien. 69Alan69 : ce que tu as écrit c'est aussi un peu plus de mon niveau 🙂

Code:
Cells(Application.Rows.Count, 1).End(xlUp).Row

Par contre petite question toute bète : la partie de code que j'ai mis au dessus signifie quoi? Parce que c'est le genre de choses qui me resservira.
 
Re : Numéro de ligne variable dans Range

Sans dire de bêtises 😛
For l = 1 To Cells(Application.Rows.Count, 1).End(xlUp).Row
signifie qu'il va tester toute les ligne de la ligne 1 a la dernière ligne qui est activé par excel. explication un peu spécial 😛 cette cellule correspond a la dernière cellule visible quand tu n'utilise pas la molette de la souris mais la barre sur le coté

ps: si tu ne comprend pas mon explication c'est normal 😛
 
Re : Numéro de ligne variable dans Range

Bonjour le fil, bonjour le forum,

Cells(numéro de ligne, Numéro de colonne) equivaut à Range("CL"). Donc Cells(1, 1) est la même chose Range("A1"). Application.Rows.Count renvoie le nombre total de lignes qui varie selon la version d'Excel (65536 avec Excel 2003, beaucoup plus sur Excel 2007 et 2010). Cells(Appication.Rows.Count, 1) permet de se positionner sur la dernière ligne de la colonne A (= 1). End permet d'attendre la première cellule éditée en remontant (xlUp) (il existe aussi : xlDown, xlToLeft, xlToRoght).
Donc Cells(Appication.Rows.Count, 1).End(xlUp).Row renvoie le numéro de la dernière ligne éditée dans la colonne 1 (Colonne A)
Tout comme Cells(1, Application.Columns.Count).End(xlToLeft).Column renvoie le numéro de la dernière colonne éditée dans la ligne 1...

[Édition]
Merci Alan, mort de rire...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
14
Affichages
484
M
Réponses
8
Affichages
2 K
Michelrib
M
T
  • Question Question
XL pour MAC Recherche date
Réponses
5
Affichages
2 K
tdenis
T
Réponses
8
Affichages
1 K
D
Réponses
1
Affichages
675
Compte Supprimé 979
C
S
Réponses
4
Affichages
2 K
stage_ferrit
S
H
Réponses
2
Affichages
1 K
H
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…