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 :

Créer une macro avec boucle sur sélection [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut Créer une macro avec boucle sur sélection
    Bonjour,

    Je suis débutant en VBA et je voudrais savoir comment faire une boucle sur une sélection de valeur. Voici plus exactement ce que je souhaite faire :
    Sélectionner avec ma souris un ensemble de ligne (par exemple de D5 à D10) puis je lance ma macro.
    Cette dernière doit pouvoir faire une boucle sur chaque élémentv dfe ma sélection afin de réaliser mon traitement (sur D5 puis D6...D10). Dans mon exemple c'est donc une boucle de 5 à 10. Il faut également que je puisse justement récupérer la valeur de ma sélection afin dy apporter les modifications necessaire. Est-ce clair ou faut-il plus de détails ?
    Merci par avance.

    Ostik

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    Pour ta 1ère réflexion :
    Sélectionner avec ma souris un ensemble de ligne (par exemple de D5 à D10) puis je lance ma macro.
    tu vas partir avec des select, ce qui est déconseillé, si je reprends ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub exemple()
    Dim i As Integer, aChanger As String
    For i = 5 To 10
        aChanger = InputBox("changement", "titre", Range("D" & i))
        Range("D" & i) = aChanger
    Next i
    End Sub
    J'ai oublié un détail si tu cliques sur "annuler" pour ne pas changer la valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub exemple()
    Dim i As Integer, aChanger As String, anul As String
    For i = 5 To 10
        aChanger = Range("D" & i)
        anul = InputBox("changement", "titre", Range("D" & i))
        If anul <> "" And anul <> aChanger Then
            Range("D" & i) = anul
        End If
    Next i
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    Merci beaucoup pour ta réponse.
    Je peux savoir pourquoi est-ce déconseiller ?
    Le problème c'est que je n'ai pas trop le choix car en faite mon fichier excel possède déja des données et je dois lui ajouter manuellement a la suite des données dejà traitées les nouvelles. il ne faut pas que ma macro s'exécute sur toutes les données de la colonne D mais seulement sur les nouvelles que je vien d'insérer.

    Je dois également préciser que je ne sais pas combien de donner seront a traiter, ça peut très bien être 10 puis 12 pour demain or dans ton exemple la boucle itère seulement de 5 à 10. Il faudrait que je sois capable de connaître le nombre d'éléments préselectionnés quand je lance ma macro.

    Encore merci

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je me suis contenté de faire un exemple
    ...exemple la boucle itère seulement de 5 à 10...
    si tu tiens à selectionner avant, adaptes comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub exemple()
    Dim cel As Range, aChanger As String, anul As String
    For Each cel In Selection
        aChanger = cel
        anul = InputBox("changement", "titre", cel)
        If anul <> "" And anul <> aChanger Then
            cel = anul
        End If
    Next cel
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    Merci beaucoup cela marche très bien (réponse très rapide )
    ca correspond exactement à mes attentes.

    Bonne fin de soirée

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

Discussions similaires

  1. [SP-2010] Créer une arborescence avec workflow sur Sharepoint 2010
    Par Unino dans le forum SharePoint
    Réponses: 4
    Dernier message: 18/08/2014, 10h08
  2. Comment créer une macro en boucle sous excel ?
    Par jib orhan dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/04/2014, 12h18
  3. [XL-2007] Comment créer une macro en boucle sous excel ?
    Par jib orhan dans le forum Excel
    Réponses: 2
    Dernier message: 15/04/2014, 13h16
  4. créer une base avec isql sur un serveur Linux Debian Squeeze
    Par symbabeauchat dans le forum Débuter
    Réponses: 2
    Dernier message: 13/05/2013, 13h21
  5. [XL-2003] Macro avec boucle sur une colonne et condition sur une autre
    Par Isabelle86 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/10/2010, 10h31

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