Encadrement automatique

  • Initiateur de la discussion Initiateur de la discussion lokomass
  • 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 !

L

lokomass

Guest
Bonjour à tous,

Je galère depuis ce matin. J'ai parcouru plein de forums et je suis à 100km de réussir ce que je veux faire.
J'explique, ça n'a pas l'air trop compliqué comme ça.
J'ai un tableau qui va des colonnes "A" à "CS" (ça restera fixe comme ceci)
Pour les lignes elles sont variables et j'en ajoute de temps en temps.
Le but, tout simple est d'encadrer automatiquement chaque ligne que je rajoute (chaque cellules de la ligne)
Actuellement j'ai 35 lignes, je veux que si je me place sur la 36 ième (A36), et que je tape "j" (par exemple), toute la ligne s'encadre de "A36:CS36".
Actuellement je récupère la valeur du nombre de ligne (35) et il s'agit de la valeur :
i = Feuil2.Range("Q3").Value
à laquelle on ajouterai 1 pour connaitre le numero de ligne excel a encadrer.
J'aimerais également que cette action soit réalisée n'importe quand sans bouton (juste à la modif de la premiere case de la ligne par exemple)

Bref j'espere avoir été clair, je vous remercie par avance.
 
Re : Encadrement automatique

Bonjour lokomas et bienvenue sur le forum,

Si tu veux des réponses, il te faudra apprendre à être plus précis.
Par exemple: que veux dire 'encadrer' la ligne? encardrer par une bordure?

Peux-être qu'un exemple de ton problème et de ce que tu souhaites nous permettrait de comprendre.

Un petit tour du côté de la charte du forum, te dirai comment rédiger tes questions.

A+
 
Re : Encadrement automatique

Bonjour lokomass,

Bienvenue sur XLD,

Tu peux le faire par une mise en forme conditionnelle (MFC)
Sélectionne les colonnes de A à CS en entier
Menu format - Mise en forme conditionnelle

La formule est
=$A1<>""
Bouton format, choisis toutes les bordures
OK

Edit : Bonjour Hasco 🙂
 
Re : Encadrement automatique

Bonjour Hasco, bonjour Tototiti et bienvenue lokomass,

A placer dans directement dans le module correspondant à ta feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    With Sheets("Feuil2")
        LigneAModifier = .Range("Q3").Value
        For i = 1 To 97
            With Cells(LigneAModifier, i)
                With .Borders(xlEdgeLeft)
                    .LineStyle = xlContinuous
                    .Weight = xlThin
                    .ColorIndex = xlAutomatic
                End With
                With .Borders(xlEdgeTop)
                    .LineStyle = xlContinuous
                    .Weight = xlThin
                    .ColorIndex = xlAutomatic
                End With
                With .Borders(xlEdgeBottom)
                    .LineStyle = xlContinuous
                    .Weight = xlThin
                    .ColorIndex = xlAutomatic
                End With
                With .Borders(xlEdgeRight)
                    .LineStyle = xlContinuous
                    .Weight = xlThin
                    .ColorIndex = xlAutomatic
                End With
            End With
        Next
    End With
End Sub
 
Re : Encadrement automatique

Re,

Hello tototiti🙂

@GeoTrouvePas🙂, petit truc plus rapide et plus court:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ligneamodifier As Long
    With Sheets("Feuil2")
        ligneamodifier = .Range("Q3").Value
        With .Range("A" & ligneamodifier & ":CS" & ligneamodifier).Cells.Borders
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    End With
End Sub

A+
 
Re : Encadrement automatique

Bien vu Hasco !
En fait :
1) je manipule mal les sélections multiples de cellules
2) Je ne connaissais pas le ".cells.borders" (je le mets dans ma caisse à outils et je ne vais pas tarder à le ressortir, merci !)
3) J'ai horreur de désigner mes cellules avec les lettres ! ^^

en tout cas, je me coucherai moins bête ce soir. Merci
 
Dernière édition:
Re : Encadrement automatique

Merci à tous pour vos réponses aussi rapides !!

J'ai un soucis lors de l'execution du code donné ci-dessus par Hasco.
Lorsque je tape quelque chose dans la ligne en question, ça s'interrompt et m'affiche une erreur "incompatibilité de type" sur cette ligne :
"ligneamodifier = .Range("Q3").Value"
Je comprend puisque la cellule en question (Q3) fait partie de la feuille 2 (nommée "Statistiques").
Donc comment lui dire d'aller chercher dans Feuille 2 ?
J'avais également une erreur ici "With Sheets("Feuil2")"
Que j'ai remplacé par "With Sheets("Résultats Enquête")"
Il s'agit en fait de la Feuil1 mais ça ne fonctionnait pas avec le mot "Feuil1"

Bref je suis rebloqué mais encore merci pour votre aide



Edit :

J'ai réussi en faisant comme ceci.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ligneamodifier As Long
    With Sheets("Résultats Enquête")
        ligneamodifier = Feuil2.Range("Q3").Value
        With .Range("A" & ligneamodifier & ":CS" & ligneamodifier).Cells.Borders
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    End With
End Sub

Merci beaucoup pour tout !!
 
Dernière modification par un modérateur:
Re : Encadrement automatique

Re,

si j'ai bien compris:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ligneamodifier As Long
    With Sheets("Résultats Enquête")
       ligneamodifier = Sheets("Statistiques").Range("Q3").Value
       With .Range("A" & ligneamodifier & ":CS" & ligneamodifier).Cells.Borders
            .LineStyle = xlContinuous
           .Weight = xlThin
            .ColorIndex = xlAutomatic 
       End With
    End With
End Sub

Lorsque tu veux employer le nom de la feuille tel qu'il apparait dans l'onglet en dessous des cellules: Sheets("NomDeLaFeuille").range("A1")

Lorsque tu veux employer le nom interne (le CodeName) de la feuille:
FeuilX.Range("A1") où FeuilX est le nom qui apparait en face de la propriété Name (entourée de parenthèses) dans la feuille de propriété de l'éditeur de code.

P.S. être bloqué quand on débute en vba est une chose normale.

A+
 
Dernière modification par un modérateur:
- 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
5
Affichages
558
Réponses
4
Affichages
755
Retour