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 d'une variable dans un Range


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut Utilisation d'une variable dans un Range
    Bonjour je souhaiterai utiliser une variable x dans un Range.
    Par exemple: Range("G8:K8")
    Remplacer la valeur 8 par 8 + x mais je n'y parviens pas..

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 101
    Par défaut
    Je en te suis pas mais regarde ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub greg()
     
    x = 4
    Range("G8:K8") = 8 + x
     
    End Sub

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Essayez le code exemple suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub aa()
    Dim i As Long
    For i = 8 To 40 Step 8
      Range("G" & i & ":H" & i & "").Select
      MsgBox Selection.Address(False, False)  'pour visualiser (à virer)
    Next i&
    End Sub

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut
    Toujours pas la macro se bloque après le premier tour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim x As Integer
    For x = 1 To 10
    Range("D9:G9") = 9 + x
     
        Range("D" & x + 8).Formula = Range("G" & x + 7).Formula
         Range("D" & x + 8).Select
          Selection.AutoFill Destination:=Range("D9:G9"), Type:=xlFillDefault
        Next x

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Je pense qu'elle se bloque sur AutoFill car tu n'intègre pas la cellule dans la destination :
    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
     
    Sub Test()
     
        Dim x As Integer
     
        For x = 1 To 10
     
            Range("D9:G9") = 9 + x
     
            Range("D" & x + 8) = Range("G" & x + 7)
     
            'pour AutoFill, la cellule doit être intégrée dans la destination
            'regarde si c'est ce que tu veux...
            Range("D" & x + 8).AutoFill Range("D" & x + 8 & ":G" & x + 8)
     
        Next x
     
    End Sub
    Hervé.

  6. #6
    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 114
    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 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour copier une formule dans une plage de cellules (ici une colonne), la syntaxe est plage.formula = FormuleString (La référence aux cellules dans cette formule doit répondre aux mêmes exigences que si on les tapait manuellement.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("H2:H12").FormulaR1C1 = "=LEFT(RC[-5],1)"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("H2:H12").Formula = "=LEFT(C1,1)"
    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

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 7
    Par défaut
    Bonjour merci à tous pour vos conseils je n'ai pas tout essayé mais j'ai finalement rajouté une variable pour que ça puisse fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim x As Integer
    For x = 1 To 1980
    Dim i As Integer
    i = x + 11
    Range("C" & x + 11).Formula = Range("AA" & x + 10).Formula
    Range("C" & x + 11).Select
    Selection.AutoFill Destination:=Range("C" & i & ":AA" & i & "")
        Next x

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

Discussions similaires

  1. Utilisation d'une variable dans une instruction Range("ABC" & variable)
    Par patrick.iribarne dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/04/2015, 12h44
  2. Utiliser une variable dans un Range
    Par Zamo21 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/04/2012, 17h44
  3. [vb.net] utilisation d'une variable dans le code
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/09/2005, 19h22
  4. Réponses: 9
    Dernier message: 05/07/2005, 08h37
  5. Pl/SQL utilisation d'une variable dans un select
    Par larg dans le forum PL/SQL
    Réponses: 17
    Dernier message: 30/11/2004, 17h08

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