Placement graphique emplacement vide

julien -  
Picasaz Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Existe-t-il un code VBA pour placer un graphique dans le premier espace non vide ??
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
julien
 
Je pensais que c'était plus simple , trop prise de tête je laisse tombé .. Merci quand meme !
0
Picasaz Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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