IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[E-03] Effacer les images placées sur une ligne


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Points : 210
    Points
    210
    Par défaut [E-03] Effacer les images placées sur une ligne
    Bonjour,

    Je voudrais effacer les images se trouvant sur une ligne. Explications :

    Sur la ligne 8, par exemple, j'écris dans certaines cellules (ça c'est facile) et je place une image voir des images sur cette même ligne (mais je ne connais pas leur nom)

    Je voudrais que la macro efface le texte de la ligne (ça c'est encore facile) et aussi la ou les images mais sans supprimer la ligne (et la c'est pas facile)

    Si vous avez une petite idée, merci d'avance pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour ami blésois

    Comment as-tu mis les images sur cette ligne.

    Philippe

  3. #3
    Membre actif Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Points : 210
    Points
    210
    Par défaut
    Les images sont dans un fichier Excel et ensuite je fais un copier coller de celles dont j'ai besoins et ce sont celles ci que je souhaite effacer.

    Explications :
    J'ai une base avec entre autre des images. Les utilisateurs utilisent une boite de dialogue pour réaliser un document comprenant des textes et des images. La macro place les textes au bonnes place au format voulus et places les images sur les lignes en fonction des textes. Le document ainsi créé est stocké par l'utilisateur.
    Il utilise le même "programme" pour mettre à jour son document, tous fonctionne bien pour récupérer les mises en formes mais pas la position, la taille des images donc la solution que j'avais trouvé est de tout effacer et de faire un copier coller de la ligne (il peut y avoir plusieurs images sur une même ligne).

    Voilà en espérant que cela paraisse plus claire

  4. #4
    Membre actif Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Points : 210
    Points
    210
    Par défaut
    J'ai peut être trouvé une solution

    Je vais regarder pour chaque image (Shape) si il est sur la ligne voulue et si tel est le cas je l'efface

    Voici le code que je viens d'utiliser pour teste la fonctionnalité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Macro1()    
    Dim n, t As Integer
        n = 0
        For t = 1 To 10
            n = n + Rows(t).RowHeight
        Next t
        MsgBox (ActiveSheet.Shapes("Picture 27").Top & Chr(10) & n)
    End Sub
    L'image se trouve sur la ligne 11 et l'information ainsi obtenu semble utilisable

    Si vous avez plus simple merci d'avance

    N'y a t'il pas un moyen de convertire rapidement et simplement la position Top en n° de ligne du tableau ?

  5. #5
    Membre actif Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Points : 210
    Points
    210
    Par défaut
    Solution trouvée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub efface_images(LigneDe, LigneA As Integer)
    Dim n, mini, maxi As Integer
        mini = 0
        For n = 1 To LigneDe
            mini = mini + Rows(n).RowHeight
        Next n
        maxi = 0
        For n = 1 To LigneA
            maxi = maxi + Rows(n).RowHeight
        Next n
     
        Set myDocument = Worksheets(2)
     
        For Each S In myDocument.Shapes
            If (S.Top >= mini) And (S.Top < maxi) Then
                S.Delete
            End If
        Next
    End Sub
    Merci à +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. afficher les Bounding Box sur une image
    Par NGeVtC87 dans le forum Images
    Réponses: 2
    Dernier message: 22/03/2012, 14h43
  2. Réponses: 12
    Dernier message: 23/12/2009, 10h56
  3. Réponses: 5
    Dernier message: 12/03/2009, 11h54
  4. Réponses: 2
    Dernier message: 04/02/2007, 16h16
  5. [Servlet] [Image] Dessiner sur une image
    Par gaia_dev dans le forum 2D
    Réponses: 5
    Dernier message: 01/09/2004, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo