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 :

comment utiliser une variable dans ce type d'écriture [A5:M&"j"]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Février 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Février 2017
    Messages : 82
    Par défaut comment utiliser une variable dans ce type d'écriture [A5:M&"j"]
    Bonjour à tous.

    Tout est dit dans le titre.

    J'ai une variable j qui a pour objectif d'utiliser mon range A5: Mj pour écrire mes données, mais ma ligne ci-dessous ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Copie").Sheets("Feuil1").[A5:M&"j"].Value = Application.Transpose(Tbl)
    Où est l'erreur?

    Merci par avance.


  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Quand tu utilises des guillemets, tu utilises la chaine de caractères, cela veut dire que tu veux utiliser littéralement ce qu'il y a entre les guillemets. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim j As Integer
    j = 5
    MsgBox j      'renvoie 5
    MsgBox "j"   'renvoie j

  3. #3
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Février 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Février 2017
    Messages : 82
    Par défaut
    Merci riaolle.
    Je suis d'accord avec toi mais [A5:M&"j"] dans la ligne de code ou [A5:M&j] ou [A5:Mj] me donnent systématiquement une erreur d’exécution 424.
    Par contre dans la ligne de code si j’écris [A5:M1000] ça marche

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Je pense que si tu veux utiliser des variables, il faut utiliser la propriété Range :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim j As Long
    j = 5
    MsgBox Range("A" & j).Value      'renvoie la valeur de A5

  5. #5
    Membre confirmé
    Homme Profil pro
    technicien
    Inscrit en
    Février 2017
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : Février 2017
    Messages : 82
    Par défaut
    effectivement avec range ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Copie").Sheets("Feuil1").Range("A5:M" & j).Value = Application.Transpose(Tbl)
    Merci pour le tuyau.

  6. #6
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Pour compléter les réponses données :
    [] fait appel à l'instruction Evaluate.

    .[A1] est la même chose que .Range("A1") c'est seulement plus court à écrire. Je pense (pas sûr et pas testé) que .[A1] est légèrement plus long à l'exécution.

    Regarde du coté de l'aide sur Evaluate pour plus d'info

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Vous pouvez faire un essai avec l'enregistreur de macro ... et vous aurez certainement un bout de la solution
    => Range("A5:M11") ET PAS LE '['

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/03/2015, 00h12
  2. comment utiliser une variable dans MySQL
    Par lecaire dans le forum Débuter
    Réponses: 6
    Dernier message: 17/08/2009, 22h57
  3. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  4. Réponses: 2
    Dernier message: 22/08/2006, 11h28
  5. Réponses: 5
    Dernier message: 04/05/2006, 21h02

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