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 :

Utilisation de Range(array)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de bifconsult
    Homme Profil pro
    Consultant
    Inscrit en
    Mars 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 189
    Par défaut Utilisation de Range(array)
    Bonjour à tou(te)s,

    Pourriez-vous m'apporter une aide dominicale ?

    Je cherche le moyen de sélectionner un nombre n d'images afin de les grouper. Le problème est que je ne connais pas n à l'avance.

    Normalement, pour sélectionner 3 images, j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes.Range(Array(("img_001"), ("img_002"), ("img_003"))).Select
    Comment faire si j'ai 10 images par exemple ? Y a-t-il une syntaxe particulière ou une autre fonction ? Ou une autre méthode ? Ou un moyen d'ajouter une nouvelle image à un groupe créé, au fur et à mesure ?

    Merci à tou(te)s

    BC

  2. #2
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Avec une syntaxe comme ça peut être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub TEST()
        Dim TabImage() As Variant
        ReDim TabImage(1 To 3)
        For i = 1 To 3
            TabImage(i) = "img00 " & i
        Next i
        ActiveSheet.Shapes.Range(TabImage).Select
    End Sub
    Pour ajouter une (ou des) image(s) tu redimensionnes ton tableau et y ajoute la(les) nouvelle(s) images (leurs noms). Ensuite pour y accéder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes.Range(TabImage)
    Bon dimanche

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Une autre option pour sélectionner toutes les images de la feuille active
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes.SelectAll
    et pour grouper les images sélectionnées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.ShapeRange.Group.Select
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre chevronné
    Avatar de bifconsult
    Homme Profil pro
    Consultant
    Inscrit en
    Mars 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 189
    Par défaut
    Citation Envoyé par issoram Voir le message
    Bonjour,

    Avec une syntaxe comme ça peut être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub TEST()
        Dim TabImage() As Variant
        ReDim TabImage(1 To 3)
        For i = 1 To 3
            TabImage(i) = "img00 " & i
        Next i
        ActiveSheet.Shapes.Range(TabImage).Select
    End Sub
    Pour ajouter une (ou des) image(s) tu redimensionnes ton tableau et y ajoute la(les) nouvelle(s) images (leurs noms). Ensuite pour y accéder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes.Range(TabImage)
    Bon dimanche

    Merci. C'est presque ça. En tout cas ça me donne une piste solide pour finaliser mon morceau de code.

    Merci

Discussions similaires

  1. [MFC/Excel] Comment utiliser un Range ?
    Par SmOkEiSBaD dans le forum MFC
    Réponses: 2
    Dernier message: 14/05/2008, 14h00
  2. Réponses: 1
    Dernier message: 11/05/2007, 19h36
  3. [VBA-E] Basique mais comment utiliser un range ?
    Par epfyffer dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/03/2007, 12h15
  4. Réponses: 3
    Dernier message: 20/12/2006, 17h13
  5. [VBA-E] Utiliser le range dans un tab croisé dynamique
    Par GoLDoZ dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/03/2006, 16h12

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