Placement graphique emplacement vide

julien -  
Picasaz Messages postés 15 Statut Membre -
Bonjour,

Existe-t-il un code VBA pour placer un graphique dans le premier espace non vide ??

3 réponses

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

    Je ne comprends pas ta question par rapport au titre!

    Dans ton post du 13 avril auquel j'ai répondu, je t'ai donné un lien et dans ce lien il y a ceci:

    https://excel.developpez.com/faq/?page=Graphique#RepositionneGraphique
    0
    1. julien
       
      Oui c'était niquel , lors de la création du graphique ca le place au emplacement suivant le nombre de graphique .

      Je suis entrain de perfectionner l'outil et le soucis c'est que :

      Tous mes graphiques sont bien placé mais l'utilisateur peut activer une macro qui va fusionner deux graphique ( donc y'aura un espace vide et 1 graphique en moins sur la feuille )
      Si j'importe un nouveau graphique il se superpose donc à un autre graphique alors que j'aimerais qu'il prenne l'emplacement vide ..

      Une idéé ?
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Toujours sur le même lien on trouve:
    lister tous les graphiques.
    trouver leur position.

    Ensuite en fonction du résultat, il te suffit d'empêcher la sélection de ces plages:

    Option Explicit
    'http://excel.developpez.com/faq/?page=Graphique#ListeGraphiques
    'http://excel.developpez.com/faq/?page=Graphique#PosGraphiqueFeuille
    Private Sub CommandButton1_Click()
     Dim j As Byte, i As Byte
        Dim Ch As Chart
     Dim objCht As ChartObject
        'Recherche les onglets graphiques
        For Each Ch In Charts
                Debug.Print "Feuille graphique " & vbTab & Ch.Name
        Next Ch
     
        'Boucle sur tous les onglets du classeur
        For j = 1 To Sheets.Count
             'Recherche les graphiques incorporés dans la feuille
            For i = 1 To Sheets(j).ChartObjects.Count
                MsgBox "Nom: " & Sheets(j).ChartObjects(i).Name & vbTab & _
                " dans " & Sheets(j).Name
                Set objCht = Feuil1.ChartObjects(i)
     MsgBox objCht.TopLeftCell.Address & ":" & objCht.BottomRightCell.Address
            Next i
        Next j
    End Sub
    

    0
    1. julien
       
      Je pensais que c'était plus simple , trop prise de tête je laisse tombé .. Merci quand meme !
      0
  3. Picasaz Messages postés 15 Statut Membre
     
    Bonjour, je vois que personne n’a pas pu te répondre. Je te propose alors de voir des tutoriels sur Excel et la programmation Excel pour trouver la solution à cette question. Bonne continuation et bon courage pour le reste.
    -1