Encadrement cellule d'un tableau vba

Messages postés
295
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
31 octobre 2019
- - Dernière réponse : max850
Messages postés
295
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
31 octobre 2019
- 31 oct. 2019 à 16:49
Bonsoir
Je voudrais encadrer automatiquement toutes les cellules d'un tableau de plusieurs colonnes à partir de la ligne 3 jusqu'à la dernière ligne écrite en vba
Qui peut m'aider ?
merci



Configuration: Windows / Chrome 77.0.3865.120
Afficher la suite 

4 réponses

Messages postés
4604
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
21 novembre 2019
118
0
Merci
Bonjour Max, bonjour le forum,

À question floue, réponse peu précise (et lycée de Versailles)... Essaie comme ça :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim PL As Range 'déclare la variable PL (PLage)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Set PL = O.Range("A1").CurrentRegion 'définit la plage PL (à adapter à ton cas)
Set PL = PL.Offset(2, 0).Resize(PL.Rows.Count - 2, PL.Columns.Count) 'redéfinit la plage PL (sans les 2 premières lignes)
'bodures simples
With PL.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
End With
With PL.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
End With
With PL.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
End With
With PL.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
End With
With PL.Borders(xlInsideVertical)
    .LineStyle = xlContinuous
End With
With PL.Borders(xlInsideHorizontal)
    .LineStyle = xlContinuous
End With
End Sub

Commenter la réponse de ThauTheme
Messages postés
295
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
31 octobre 2019
2
0
Merci
Bonjour ThauTheme
je vais essayer d'être un peu plus précis
J'ai 8 colonnes . Les longueurs des colonnes sont variables ou peuvent être de même longueur.
Je souhaiterais encadrer toutes les cellules y compris les vides des 8 colonnes en prenant comme base la colonne la plus longue autrement à partir de la dernière ligne où au moins une cellule de cette ligne contient des informations

je voudrais essayer comme suit

For derlig = 2 To .Cells(Rows.Count, 2).End(xlUp).Row pour chercher la dernière ligne non écrite
for i = 1 to 8 pour rechercher la cellule non vide vide
If .Cells(derlig, i).Value = <> "" then .....

End If
Next i
mais ne suis pas sûr de ma démarche et ne sais pas comment la compléter
Commenter la réponse de max850
Messages postés
4604
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
21 novembre 2019
118
0
Merci
Re,

Le code que je t'ai proposé fonctionnera si le tableau commence en A1 et s'il il n'y a aucune ligne entièrement vide ou colonne entièrement vide dans ce tableau.

Tu parles de la fin du tableau et ce qui m'importe c'est le début...
Je sens que ce post va tourner en round tant que tu ne daigneras pas fournir un exemple... Voir par exemple avec https://www.cjoint.com/
Commenter la réponse de ThauTheme
Messages postés
295
Date d'inscription
dimanche 10 janvier 2016
Statut
Membre
Dernière intervention
31 octobre 2019
2
0
Merci
Bonjour ThauTheme
Je viens de reprendre mon fichier auquel j'ai ajouté ta macro() et ça marche parfaitement.
j'ai aussi la possibilité d'imprimer ma feuille inventaire via mon bouton d'édition.
Ma question : lorsque j'ai ma fenêtre d'impression comment puis je revenir sur le menu principal
si j'annule l'impression avec annule de la fenêtre impression?
En tous les cas merci pour ton aide



https://www.cjoint.com/c/IJFpPt4mzUu
Commenter la réponse de max850