[VBA Excel] Dernière cellule d'une colonne à avoir des bordures

Boonichou

XLDnaute Nouveau
Bonjour,

Je cherche à savoir le code VBA à rentrer pour connaitre la dernière cellule d'une colonne à avoir des bordures.

Merci d'avance.

Daniel
 

Spitnolan08

XLDnaute Barbatruc
Re : [VBA Excel] Dernière cellule d'une colonne à avoir des bordures

Bonjour,

en adaptant ce code à ta situation:
Code:
Sub Bordures()
For i = Range("A65500").End(xlUp).Row To 1 Step -1
    If Cells(i, "A").Borders.Count <> 0 Then Msgbox=("La cellule " & Cells(i,"A").address & " Contioent une bordure") : exit for
Next
End Sub
Sous réserve que ta colonne contienne des données. Sinon il faut définir autrement les bornes de ta boucle.

Cordialement
 

Boonichou

XLDnaute Nouveau
Re : [VBA Excel] Dernière cellule d'une colonne à avoir des bordures

Merci pour ta réponse, mais mes colonnes ne contiennent pas forcément de cellules remplies...

Y'aurait pas un code du style:

a = Range("A65536").End(xlUp).Row pour les bordures??
 

Spitnolan08

XLDnaute Barbatruc
Re : [VBA Excel] Dernière cellule d'une colonne à avoir des bordures

Re,

essaye alors :
Code:
Sub Bordures()
For Each c In ActiveSheet.UsedRange
    If c.Borders.LineStyle = xlNone Then
        c.Interior.ColorIndex = xlNone
    Else
        c.Interior.ColorIndex = 3
    End If
Next
End Sub
Cordialement
 

Spitnolan08

XLDnaute Barbatruc
Re : [VBA Excel] Dernière cellule d'une colonne à avoir des bordures

Re,

Je viens de me rendre compte que je n'avais pas répondu exactement à ta question...J'en avais oublié un morceau en route! Si la colonne qui t'intéresse est la colonne "B" (soit la 2ème définie par la variable MaCol) :
Code:
Sub Bordures3()
DerLig = Cells.SpecialCells(xlCellTypeLastCell).Row
DerCol = Cells.SpecialCells(xlCellTypeLastCell).Column
MaCol = 2

If MaCol > DerCol Then Exit Sub

For Each c In Range(Cells(1, MaCol), Cells(DerLig, MaCol))
    If c.Borders.LineStyle = xlNone Then
        c.Interior.ColorIndex = xlNone
    Else
        c.Interior.ColorIndex = 3
    End If
Next
End Sub
Cela permet de tester sur une colonne précise tout en évitant de tester sur la colonne entière.

Cordialement
 

Boonichou

XLDnaute Nouveau
Re : [VBA Excel] Dernière cellule d'une colonne à avoir des bordures

Merci pour ta réponse, mais je ne comprends pas bien ce que fait ton code (jsuis un gros noob en programmation VBA). Peux tu m'éclairer sur les bouts de code suivants:

DerLig = Cells.SpecialCells(xlCellTypeLastCell).Row

et

For Each c In Range(Cells(1, MaCol), Cells(DerLig, MaCol))
If c.Borders.LineStyle = xlNone Then
c.Interior.ColorIndex = xlNone
Else
c.Interior.ColorIndex = 3
End If
Next

Merci
 

Spitnolan08

XLDnaute Barbatruc
Re : [VBA Excel] Dernière cellule d'une colonne à avoir des bordures

Re,
Code:
 DerLig = Cells.SpecialCells(xlCellTypeLastCell).Row
Recherche la dernière cellule de la page qui pourrait contenir une donnée.
Code:
 For Each c In Range(Cells(1, MaCol), Cells(DerLig, MaCol))
    If c.Borders.LineStyle = xlNone Then
        c.Interior.ColorIndex = xlNone
    Else
        c.Interior.ColorIndex = 3
    End If
Next
Recherche dans la colonne qui t'intéresse (MaCol) les cellules disposant de bordures et les colore en rouge

Pour avoir seulement la dernière de la colonne
Code:
 For i= derLig to 1 step-1 
If cells(i,MaCol).Borders.LineStyle = xlNone Then
cells(i,MaCol).Interior.ColorIndex = xlNone
     Else
cells(i,MaCol).Interior.ColorIndex = 3
exit for
     End If
Next

Cordialement
 

Discussions similaires

Réponses
4
Affichages
181
Réponses
16
Affichages
345

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux