IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Dernière cellule à avoir des bordures?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 31
    Par défaut Dernière cellule à avoir des bordures?
    Bonjour,

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

    Merci d'avance.

    Daniel

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Pour éviter de tester tous les styles de bordure (Il y rarement des diagonales)ce serait plus facile si tu savais à l'avance ceux que ta cellule ne comportera pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub Bordure0()
    Dim Bordure As Boolean
    Dim Line, Col As Integer
    Bordure = True
    Line = 0
    Col = 1
    Do Until Bordure = False
       Line = Line + 1
       With Cells(Line, Col)
          If .Borders(xlEdgeLeft).LineStyle = xlNone And _
             .Borders(xlEdgeTop).LineStyle = xlNone And _
             .Borders(xlEdgeBottom).LineStyle = xlNone And _
             .Borders(xlEdgeRight).LineStyle = xlNone Then Bordure = False
       End With
    Loop
    MsgBox ("La ligne " + Str(Line) + " N'a pas de bordure")
    End Sub

  3. #3
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Bonsoir,
    on peut aussi remplacer


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With Cells(Line, Col)
          If .Borders(xlEdgeLeft).LineStyle = xlNone And _
             .Borders(xlEdgeTop).LineStyle = xlNone And _
             .Borders(xlEdgeBottom).LineStyle = xlNone And _
             .Borders(xlEdgeRight).LineStyle = xlNone Then Bordure = False
       End With
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          If Cells(Line, Col).Borders.LineStyle = xlNone Then Bordure = False
    fred65200

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Ouais mais alors, on n'exclut pas les diagonales qui sont rarement utilisées

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 117
    Par défaut Détection de bordure
    Bonjour,

    je profite de ce post (qui n'a pas été noté résolu ...) pour relancer la question.
    j'aimerais détecter la dernière cellule (la plus en bas à droite) contenant une bordure, et en évitant de faire une boucle sur chaque cellule, ce qui est faisable en adaptant la proposition ci dessus (ce qui prend un certain temps). Existe-t-il quelque chose d'equivalent à Range.End par exemple à utiliser en détectant les bordures ?

    Merci

    PS : En attendant, pour mon cas précis, l'utilisateur à la possibilité d'ajouter des lignes et colonnes dans un tabelau, je nomme la dernière cellule de ce tableau en espérant qu'il n'insert toujours qu'à l'intérieur de celui-ci et je récupère cette cellule nommée.

  6. #6
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour

    je ne sais pas si c'est ça que tu cherche:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ligne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    Colonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column
    If Cells(Ligne, Colonne).Borders.LineStyle = xlNone Then Bordure = False
    Mais pas de détection des diagonales.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/11/2011, 05h40
  2. Réponses: 2
    Dernier message: 23/12/2010, 15h43
  3. Réponses: 0
    Dernier message: 18/11/2008, 21h29
  4. Avoir des bordure pour les cellules d'un tableau?
    Par Doberman dans le forum BIRT
    Réponses: 3
    Dernier message: 12/06/2006, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo