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

Excel Discussion :

Executer une macro sur plusieurs cellules


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Executer une macro sur plusieurs cellules
    Bonjour,

    Je débute avec l'utilisation des macros.
    Je ne les utilise que par Excel, le VBA est pour moi encore inaccessible (au vu de la complexité de l'outil)

    Je souhaite que ma macro ait un remplissage, une police et affiche un chiffre dans une cellule.

    J'arrive à créer la macro, j’arrive à l’exécuter si je l'applique à UNE seule cellule.

    Mais, quand je sélectionne plusieurs cellules, que j’exécute la macro, seule la première cellule exécute la macro dans son intégralité.

    Toutes les autres cellules selectionnées appliquent seulement le changement de remplissage et de police. Le chiffre disparait.

    Pourriez-vous me venir en aide SVP?

    Je remercie d'avance les personnes qui m'aideront.

    Niconiko

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 468
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 468
    Points : 16 348
    Points
    16 348
    Par défaut
    Bonjour

    Poste déjà le code d'autant que "un chiffre" est très vague...

    Sans macro, il suffit de créer un style de cellule pour le format à appliquer à N cellules et de taper le chiffre et de valider par Control entrée pour le saisir dans les N cellules d'une sélection.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut réponse à Chris
    Bonjour Chris,

    Les chiffres que je souhaitent faire apparaitre sont simplement des chiffres de 1 à 10.
    Chaque chiffre correspond à une tâche de travail de mon équipe.
    Le but étant d'évaluer le temps passé à chaque tâche ...

    Les raisons pour lesquelles je n'ai pas mis le code sont simples,... Je n'y comprends pas grand chose et ai peur que l'on m'explique qqch que je ne comprends pas!
    Mais le voici ci-dessous:

    Sub Macro6()
    '
    ' Macro6 Macro
    '

    '
    ActiveCell.FormulaR1C1 = "=1"
    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 10040319
    .TintAndShade = 0
    .PatternTintAndShade = 0
    End With
    With Selection.Font
    .Color = -6736897
    .TintAndShade = 0
    End With
    End Sub


    Merci

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 468
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 468
    Points : 16 348
    Points
    16 348
    Par défaut
    Re

    Comme je l'ai dit c'est très simple à faire manuellement : tu peux taper 1 dans une cellule, la mettre en forme, et tirer la poignée de recopie jusqu'à la ligne 10 en maintenant le bouton Control du clavier enfoncé et c'est fini...

    Ton code me donne la même couleur de cellule et de police mais c'est peut-être du au thème. Voici néanmoins le code modifié pour faire une suite de nombre et mettre le format...

    Prévu pour fonctionner à partir de la ligne 1 ou à la suite d'une série déjà numéroté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
    20
    21
    Sub Macro6()
    '
    ' Macro6 Macro
    '
     
    For Each cellule In Selection
        If cellule.Row = 1 Then x = 1 Else x = cellule.Offset(-1, 0).Value + 1
        cellule.Value = x
        With cellule.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 10040319
        .TintAndShade = 0
        .PatternTintAndShade = 0
        End With
        With cellule.Font
        .Color = -6736897
        .TintAndShade = 0
        End With
    Next cellule
    End Sub
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut merci n°1
    Re,

    En effet, je sais que je peux simplement taper le chiffre dans une cellule, la mettre en forme et tirer la poignée.
    Je souhaite utiliser les macros pour deux raisons :
    - apprendre la technique en commençant par quelque chose de simple (ça dépend pour qui?)
    - faciliter l'utilisation de mon futur document à mes agents (j'y inclurai des boutons par la suite) sans à avoir à faire une formation ou une explication trop compliquée.

    Pour la formule que tu m'as donnée, je vois que celle-ci s'applique à toutes les cellules que je sélectionne.
    Par contre, est-il possible que toutes les cellules que j'ai sélectionnée aient le même chiffre (1, dans ce cas) et non une série de chiffre qui commence par 1?

    Je devrai ensuite reproduire la formule pour chacun des chiffres (un chiffre = un poste de travail)

    Merci beaucoup

    Niconiko

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 468
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 468
    Points : 16 348
    Points
    16 348
    Par défaut
    Re

    Taper le chiffre dans la 1ère cellule concernée puis faire la sélection puis lancer la macro. Sinon il faudrait une boîte de dialogue pour demander la valeur...
    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 Macro6()
    '
    ' Macro6 Macro
    '
     
    X = Selection(1, 1).Value
    Selection.FormulaR1C1 = X
        With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 10040319
        .TintAndShade = 0
        .PatternTintAndShade = 0
        End With
        With Selection.Font
        .Color = -6736897
        .TintAndShade = 0
        End With
    End Sub
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut merci n°2
    Bonjour,

    Merci pour tout ça !!!

    J'arrive presque à obtenir ce que je souhaite.

    L'idéal serait que :

    - je sélectionne la plage que je souhaite.
    - je clique sur le bouton (que j'aurais créer) et instantanément les cellules sélectionnées se mettent en couleur avec le chiffre correspondant dans chacune d'entre elles.

    Penses-tu que cela soit possible?

    Merci

    Niconiko

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 468
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 468
    Points : 16 348
    Points
    16 348
    Par défaut
    Bonjour

    Rien ne t'empêche d'ajouter un bouton et de le lier à la macro : la macro fait ce que tu demandes.

    Comme je l'ai indiqué, il faut qu'elle connaisse le chiffre à insérer puisque, si je reprends tes 1ers messages il peut varier, d'où le nécessité de lancer la macro après avoir saisi le chiffre voulu dans une cellule et sélectionné l'ensemble des cellules sur lesquelles doit agir la macro...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Points : 31
    Points
    31
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
     
    For Each cell In Selection
      cell.Value = "2"
    Next
     
    End Sub
    C'est juste un exemple de base, après on peut compliquer la macro à loisir...

  10. #10
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2014
    Messages : 5
    Points : 2
    Points
    2
    Par défaut MERCI BEAUCOUP
    MERCI JAZZROCK ET 78CHRIS,

    Grâce à vous, j'ai pu créer le document que j'imaginais!

    Pour info, voici la formule:

    Sub FORMATION()
    For Each cell In Selection
    cell.Value = "9"
    Next

    With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = -0.349986266670736
    .PatternTintAndShade = 0
    End With
    With Selection.Font
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = -0.349986266670736
    End With
    End Sub

  11. #11
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 468
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 468
    Points : 16 348
    Points
    16 348
    Par défaut
    Bonjour

    Ce que je proposais permet de choisir le chiffre sans avoir à toucher au code.

    Le tien nécessite de modifier le code à chaque fois qu'on veut autre chose que 9.

    C'est un choix mais je voulais juste que tu comprennes la différence puisque ton objectif est d'apprendre...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

Discussions similaires

  1. [OpenOffice][Tableur] Macro bouton, appliquer une valeur sur plusieurs cellules selectionées
    Par myz-rix dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 23/07/2011, 06h37
  2. Répéter une macro sur plusieurs cellules
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/03/2010, 17h28
  3. executer la macro sur la cellule Active
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2007, 12h51
  4. [VBA-E] Comment appliquer une macro sur plusieurs cellules
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/01/2007, 10h54
  5. Réponses: 4
    Dernier message: 03/12/2004, 11h18

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