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

XL 2016 Ajouter une bordure sur dernière ligne insérée

patrick60880

XLDnaute Nouveau
Bonjour à tout le forum. Ma question est peut-être simpliste mais je n'y arrive pas. Voilà, j'insère plusieurs lignes dans une feuille par le biais d'un userform. J'aimerais appliquer une bordure basse sur la dernière ligne insérée.

Voici le code de mon bouton qui insère les lignes:

Private Sub CommandButton1_Click()

Set f2 = Sheets("Commandes")
If Me.TextBox14 = "" Then
MsgBox "saisir un numéro de commande!"
Me.TextBox14.SetFocus
Exit Sub
End If

ligne = f2.[A65000].End(xlUp).Row + 1

f2.Cells(ligne, 1) = Me.TextBox14
f2.Cells(ligne, 2) = Me.TextBox1
f2.Cells(ligne, 3) = Me.TextBox15
f2.Cells(ligne, 4) = Me.ComboBox3
f2.Cells(ligne, 8) = Me.TextBox13
f2.Cells(ligne, 15) = Textbox11.Value * TextBox15.Value
'Format(TextBox16.Value, "0.#0 €")

Me.TextBox1 = ""
Me.Textbox2 = ""
Me.Textbox3 = ""
Me.Textbox4 = ""
Me.Textbox5 = ""
Me.TextBox6 = ""
Me.Textbox7 = ""
Me.TextBox8 = ""
Me.TextBox9 = ""
Me.TextBox10 = ""
Me.Textbox11 = ""
Me.TextBox12 = ""
Me.TextBox15 = ""
End Sub


Merci beaucoup pour votre aide
 

patrick60880

XLDnaute Nouveau
ce code fonctionne très bien mais donne une bordure infinie:

With f2.Rows(ligne).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
End With

Le dernier code
f2.Range(Cells(ligne, 1), Cells(ligne, 17)).Borders(xlEdgeBottom).LineStyle = xlContinuous
me renvoie une erreur.

Merci encore pour ton aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Ca m'étonne, je viens de tester ça marche correctement
Dans ce cas utilisez la première version :
VB:
With f2.Range(Cells(ligne, 1), Cells(ligne, 17)).Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
End With
Je l'ai aussi testée elle marche bien.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Testez ce petit fichier avec cette macro pour voir.
VB:
Sub Souligner()
ligne = [E3]
Sheets("Feuil1").Range(Cells(ligne, 1), Cells(ligne, 17)).Borders(xlEdgeBottom).LineStyle = xlContinuous
End Sub
Chez moi, sous XL2007, ça marche impeccable.
plus un second test avec :
Code:
Sub Souligner2()
ligne = [E3]
Sheets("Feuil1").Range("A" & ligne & ":Q" & ligne).Borders(xlEdgeBottom).LineStyle = xlContinuous
End Sub

Plus un troisième type pour voir toutes les configurations. Evidemment les trois marchent chez moi.
 

Pièces jointes

  • Soulignage.xlsm
    16.6 KB · Affichages: 10
Dernière édition:

patrick60880

XLDnaute Nouveau
Le fichier fonctionne parfaitement. Je ne comprends pas. Un grand merci quand même pour votre aide très précieuse.
Il n'y a que ce code qui fonctionne:
With f2.Rows(ligne).Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
End With

Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
En désespoir de cause, testez ça :
VB:
    f2.Range("A" & ligne & ":Q" & ligne).Select
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    f2.Range("A" & ligne).Select
On évite toujours à cause des Select inélégants.
 

patrick60880

XLDnaute Nouveau
Merci sylvanu,

Finalement, j'ai créé un autre bouton, juste pour tracer une bordure sur la dernière ligne. Il fallait juste sélectionner la feuille. Voici le code:
Private Sub CommandButton2_Click()
Set f2 = Sheets("Commandes")
Worksheets("Commandes").Activate
ligne = f2.[A65000].End(xlUp).Row
Range("A" & ligne & ":Q" & ligne).Select
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlMedium
End With
End Sub

Encore un grand merci pour votre aide
 

patrick60880

XLDnaute Nouveau
Pour être plus clair, Mon userform prends les données dans une feuille nommée "Inventaire" et écrit les lignes dans une autre feuille nommée "Commandes". Dans l'initialisation il y avait bien 2 données f pour la première feuille et f2 pour la seconde. Dans le dernier code que vous m'avez donné, la bordure était tracée sur la Première feuille (je ne sais pas pourquoi), donc, il fallait absolument activer la seconde feuille pour trouver la dernière ligne écrite et tracer la bordure.
 

Discussions similaires

Réponses
17
Affichages
811
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…