Gerer un fleche selon une condition

zinebfilali -  
 zinebfilali -
Bonjour, dans un fichier excel, j'ai dessiner un tableau de 2 colonnes, le 1er colonne contient des nombres, le 2eme ou s'existe le problème
je veut que selon le nombre déclarer dans la colonne 1, le flèche se varie
par exemple:
si j'entre le numero 2, la flèche se dessine d'une petite longueur
si j'entre le numero3, la flèche va s’étend un peu...
et ainsi de suite
merci de m'aider et m'indique comment je peu varier la longueur par un code VBA
NB: ce n'ai pas important pour moi quelle manière la flèche va se dessiner
cordialement

4 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    voir dans ce site: AddLine(débutX,débutY,finX,finY)

    http://boisgontierjacques.free.fr/pages_site/lesimages.htm#Ecriture

    voir le nom des shapes:

    https://www.developpez.net/forums/d1013450/logiciels/microsoft-office/excel/macros-vba-excel/liste-shape/

    Ce qui donne a adapter:

    ActiveSheet.Shapes.AddShape(msoShapeNotchedRightArrow, 10, 10, 100, 10).Name = "xxx"


    et pour effacer:

    Sub EffaceShapesSaufBoutons()
    Dim i As Variant
       For Each i In ActiveSheet.Shapes
         If i.Type <> 8 And i.Type <> 12 Then
           ActiveSheet.Shapes(i.Name).Delete
           'Range("A1") = i.Name 'nom de la shape
         End If
       Next i
    End Sub
    


    avec cela tu as de quoi t'amuser

    0
  2. zinebfilali
     
    aider moi s'il vous plait
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      c'est fait
      0
    2. zinebfilali
       
      merci je vais essayer
      0
  3. zinebfilali
     
    merci bcp le code ActiveSheet.Shapes.AddShape(msoShapeNotchedRightArrow, 10, 10, 100, 10).Name = "xxx"
    ça fonctionne...
    je vais essayer pour modifier le longueur selon condition
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Voici un exemple avec Target

      https://forum.excel-pratique.com/viewtopic.php?t=1314

      Faire Alt F11 pour accéder à l'éditeur. Coller ce code dans le module de la feuille active.

      C'est réglé pour mettre les infos dans A2 à adapter:

      Option Explicit
      'https://forum.excel-pratique.com/viewtopic.php?t=1314
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim longueur As Integer
      If Not Application.Intersect(Target, Range("A2")) Is Nothing Then
      If Target.Value = "" Then Exit Sub
      EffaceShapesSaufBoutons
      longueur = Target.Value * 10
       ActiveSheet.Shapes.AddShape(msoShapeNotchedRightArrow, 60, 20, longueur, 10).Name = "xxx"
       End If
      End Sub
      Sub EffaceShapesSaufBoutons()
      Dim i As Variant
         For Each i In ActiveSheet.Shapes
           If i.Type <> 8 And i.Type <> 12 Then
             ActiveSheet.Shapes(i.Name).Delete
             'Range("A1") = i.Name
           End If
         Next i
      End Sub
      
      


      Voilà

      @+ Le Pivert
      0
  4. zinebfilali
     
    j'ai essayer avec pas mal de combinaison mais il ne se fonctionne pas par ce dernier code. il ne dessine pas la flèche.
    0
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Voilà un exemple avec les explications:

      https://www.cjoint.com/c/IFvpPgn6eJQ

      @+ Le Pivert
      0
    2. zinebfilali
       
      merci tres bien pour ton attention c gentil de ta part Le pivert...
      bon courage
      0