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 :

Actions sur une sélection


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 13
    Points
    13
    Par défaut Actions sur une sélection
    Bonjour à tous!

    Je vous souhaite déjà une très bonne année 2012!

    Hier j'ai commencé à faire du VBA pour la première fois et merci Google pour l'aide qu'il m'apporte . Mais là j'ai soucis que n'arrive pas à régler.

    En fait, j'ai une sélection qui n'est pas fixe et je voudrais faire plusieurs actions.

    1er actions : Trouver la valeur max ==> j'ai réussi

    2ème action : Prendre l'adresse de la dernière colonne de cette sélection ==> je n'y arrive pas

    3ème action : Changer la mise en forme de cette sélection et mettre en pourcentage l'affichage des chiffres ==> je n’ai pas encore cherché mais si vous avez des informations, je suis preneur.

    Je vais mettre le code que j'ai réalisé, il n'est pas du tout optimisé et va surement faire mal au yeux à bon nombre d'entre vous .

    Merci d'avance pour votre aide

    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
    22
    23
    24
    25
    Sub TEST()
     
        ' Cherche une cellule où est marquée Total
        Dim Maximum As Single
        Dim Plage As Range, c As Range
        Dim Address As String
     
        Cells.Find(What:="Total").Select
        ActiveCell.Offset(1, 1).Range("A1", "A2").Select
        Selection.Copy
        ActiveCell.Offset(4, 0).Range("A1").Select
        ActiveSheet.Paste
     
        Cells.Find(What:="Total").Select
        ActiveCell.Offset(2, 2).Range("A1").Select
        Range(ActiveCell, ActiveCell.End(xlToRight)).Select
        ' Premiere Action : trouver la valeur max
        Maximum = Application.WorksheetFunction.Max(Range(ActiveCell, ActiveCell.End(xlToRight)))
     
     
        ' Deuxième action : Prendre l'adresse de la dernière colone de cette selection
     
     
     
        ' 3ème action : Changer la mise en forme de cette selection

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Bonjour,


    2ème action : Prendre l'adresse de la dernière colonne de cette sélection
    Tu n'étais pas loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.End(xlToRight).Address
    Changer la mise en forme de cette sélection et mettre en pourcentage l'affichage des chiffres
    Je te conseillerais d'utiliser l'enregistreur de macro. Cela te mettra sur la voix

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Merci!!!

    J'y arrive tout doucement.

    je vous met le code a jour :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub TEST()
     
        ' Cherche une cellule où est marquée Total
        Dim Maximum As Single
        Dim Plage As Range, c As Range
        Dim Address As String
        Dim Address2 As String
        Cells.Find(What:="Total").Select
        ActiveCell.Offset(1, 1).Range("A1", "A2").Select
        Selection.Copy
        ActiveCell.Offset(4, 0).Range("A1").Select
        ActiveSheet.Paste
     
        Cells.Find(What:="Total").Select
        ActiveCell.Offset(2, 2).Range("A1").Select
        Range(ActiveCell, ActiveCell.End(xlToRight)).Select
        ' Premiere Action : trouver la valeur max
        Maximum = Application.WorksheetFunction.Max(Range(ActiveCell, ActiveCell.End(xlToRight)))
     
        ' Deuxième action : Prendre l'adresse de la dernière colone de cette selection
        Address = ActiveCell.End(xlToRight).Address
     
     
        ' 3ème action : Changer la mise en forme de cette selection
        Selection.NumberFormat = "0.00%"
        Range(ActiveCell, ActiveCell.End(xlToRight)).Select
     
     
        Cells.Find(What:="Total").Select
        ActiveCell.Offset(6, 2).Select
        ActiveCell.FormulaR1C1 = "=R[-4]C/ Maximum "   Address = ActiveCell.Address
        Selection.AutoFill Destination:=Range(ActiveCell, ActiveCell.End(xlToRight)), Type:=xlFillDefault
     
     
       End Sub
    J'ai un soucis sur la ligne 31 :

    a savoir ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=R[-4]C/ Maximum "
    Sur mon tableau là ou il devrait y avoir un chiffre j'ai #NAME?
    Pourtant j'ai déclaré une variable Maximum...
    Je ne comprend pas tout

    Merci d'avance.

  4. #4
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    Maximum est une variable VBA. Dans ton code tu fais référence à une plage nommée "Maximum"

    Essais comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=R[-4]C/" & Maximum

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    Merci

    Bonne journée

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

Discussions similaires

  1. action sur une sélection multiple dans un DBGRID
    Par tarmo57 dans le forum Débuter
    Réponses: 3
    Dernier message: 09/09/2012, 15h16
  2. Action groupée sur une sélection de fichier
    Par SfJ5Rpw8 dans le forum Vos téléchargements VB6
    Réponses: 0
    Dernier message: 03/12/2010, 22h22
  3. 2 actions sur une seule liste de sélection
    Par cuisto2009 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/11/2009, 16h17
  4. [Tableaux] action sur une variable ->
    Par mactech dans le forum Langage
    Réponses: 9
    Dernier message: 15/12/2005, 19h01
  5. Action sur une image
    Par frutix dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 21/10/2005, 12h04

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