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 :

Incrémenter la variable de la boucle dans le paramètre d'une formule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Août 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant CRM

    Informations forums :
    Inscription : Août 2017
    Messages : 8
    Par défaut Incrémenter la variable de la boucle dans le paramètre d'une formule
    Bonjour,

    Voici mon problème :


    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 macro()
     
    For w = 1 To 4
     
    If w > 1 Then
        Range("K4").Value = "Product/Period"
        Range("K5").Value = "=CONCATENATE(LEFT(cells(26024+w-1,1),2+2*w-2),""?? *"")"
        Range("A3:I26014").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("K4:K5"), Unique:=False
     
        Range("K4").Value = ""
        Range("K5").Value = ""
        Cells(26025 + w - 1, 1).CurrentRegion.Select
     
        selection.Offset(1 + w - 1, 0).Resize(selection.Rows.Count - 1 - w + 1, selection.Columns.Count).Select
        selection.Clear
    End If
     
    end sub
    J'aimerais donc que la variable w augmente de 1 dans la formule CONCATENATE(LEFT(cells(26024+w-1,1),2+2*w-2,""?? *"").

    C'est simplement une question de synthaxe que je ne connais pas encore.

    Merci bien.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tout d'abord, quand on fait une boucle For To, il faut la cloturer avec un Next.
    https://msdn.microsoft.com/fr-fr/lib.../gg251601.aspx

    Deuxièmement, si dans ta boucle For Next, si tu veux éviter la valeur 1, inutile de faire un If derrière. Il suffit de commencer par la valeur 2.
    Troisièmement, pour mettre une formule dans une cellule, on n'utilise pas Value (qui ne met qu'une valeur comme son nom l'indique) mais Formula ou une de ses petites sœurs.
    https://msdn.microsoft.com/fr-fr/lib.../ff838835.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff838851.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff823188.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff838568.aspx

    Quatrièmement, avec un Formula, on doit mettre dans la cellule une formule avec la syntaxe d'Excel et non celle de VBA.
    Donc, dans la formule, on ne met pas de "Cells" mais les coordonnées de la cellule.

    Enfin, pour ce qui est de ta question, ce qui est introduit dans Formula est une chaine de caractère et doit être traité comme tel, y compris pour les concaténations (&) permettant d'introduire des parties variables.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juillet 2010
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juillet 2010
    Messages : 160
    Par défaut
    Merci beaucoup Menir j'avais eu un problème similaire mais j'avoue que j'utilise par habitude formulaR1C1, et en le remplaçant simplement par ton formula ça fonctionne parfaitement...

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Chacune des quatre solutions a ses avantages.

    FormulaR1C1 a l'avantage de pouvoir mettre simultanément dans plusieurs cellule une formule avec des adresses relatives.

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    tout comme Formula / FormulaLocal s'il n'y a pas de $ dans l'adressage des cellules …

    ___________________________________________________________________________________________________________
    Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

Discussions similaires

  1. [WD17] Boucle dans les ruptures d'une table
    Par franck34matlab dans le forum WinDev
    Réponses: 5
    Dernier message: 25/09/2015, 10h53
  2. [XL-2007] Envoyer le numéro d'une boucle dans l'appel d'une fonction
    Par Kimy_Ire dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/11/2012, 18h18
  3. boucle dans la creation d'une table
    Par PUARAI dans le forum MySQL
    Réponses: 4
    Dernier message: 10/02/2010, 22h44
  4. Ajout de variable (par le code) dans les Paramètres d'application
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 13
    Dernier message: 31/07/2007, 16h50
  5. [PHP-JS] Variable PHP comme argument dans l'appel d'une fonction Javascript
    Par The Molo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2007, 09h00

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