Barré en diagonales 1 plage de donnée

Bonjour à tous,

Je voudrais crée un macro lorsque je clique sur le bouton, sa me barre la plage de donnée que j'aurais sélectionner en diagonale avec un seul trait comme sur la photo sur mon Excel. Comment est-ce possible de réaliser sa. merci d'avance

capture d ecran 2024 06 20 151603

Bonjour pascal selvam,

Un essai : la barre se dessine de la cellule "U20" à la cellule "B51". Si la barre existe, elle ne sera pas ajoutée un autre fois.

Mouliné dans ChatGPT.

Sub AddConnector()
   Dim ws As Worksheet
   Dim shape As shape
   Dim startCell As Range
   Dim endCell As Range
   Dim startX As Single
   Dim startY As Single
   Dim endX As Single
   Dim endY As Single
   Dim shp As shape
   Dim shpName As String
   Dim shpExists As Boolean

   ' Définir la feuille de calcul
   Set ws = ThisWorkbook.Sheets("Table 1") ' Remplacez "Sheet1" par le nom de votre feuille

   shpName = "Connector1" ' Nom de la barre de connexion
   shpExists = False

   ' Vérifie si la barre existe déjà
   For Each shp In ws.Shapes
      If shp.Name = shpName Then
         shpExists = True
         Exit For
      End If
   Next shp

   ' Ajoute la barre seulement si elle n'existe pas déjà
   If Not shpExists Then
      With ws.Shapes.AddConnector(msoConnectorStraight, 100, 100, 200, 200)
         .Name = shpName
         .Line.Weight = 2
         .Line.ForeColor.RGB = RGB(0, 0, 0)
      End With

      ' Définir les cellules de début et de fin
      Set startCell = ws.Range("U20")
      Set endCell = ws.Range("B51")

      ' Calculer les coordonnées de départ et d'arrivée
      startX = startCell.Left + startCell.Width / 2
      startY = startCell.Top + startCell.Height / 2
      endX = endCell.Left + endCell.Width / 2
      endY = endCell.Top + endCell.Height / 2

      ' Ajouter le connecteur
      Set shape = ws.Shapes.AddConnector(msoConnectorStraight, startX, startY, endX, endY)

      ' (Optionnel) Formater le connecteur
      With shape.Line
         .ForeColor.RGB = RGB(0, 0, 255) ' Couleur bleue
         .Weight = 2 ' Épaisseur de la ligne
      End With

   Else
      MsgBox "La barre existe déjà."
   End If

End Sub

Bizz

Bonjour,

Merci, beaucoup bizarre, mais 1 autre membre m'a fait un programme plus simple à réaliser.

Mais, j'ai une autre question par rapport à excel. J'ai mis des saut de page pour séparer en 3 feuilles. Première partie qui s'arrête à la partie orange. Il y a t-il une solution

Rechercher des sujets similaires à "barre diagonales plage donnee"