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 :

règle concatenation dans une commande


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 20
    Points
    20
    Par défaut règle concatenation dans une commande
    Bonjour,

    le code suivant me génère une erreur de type 13 certainement due à une mauvaise syntaxe sur la ligne rows(" & i ...

    Quel serait la bonne syntaxe ?

    D'une manière générale quelles sont les règles de syntaxe pour générer des concaténations correctes ?

    Je vous remercie pour votre aide.
    Jean-Marie

    ps : ce code est inclus dans une boucle où i est la variable de cette boucle. Pour exposer mon problème , j'ai simplifié le code en indiquant une valeur arbitraire pour la variable i.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub macro5()
    Dim i As Variant
    i = 15
    Worksheets("feuil1").Select
    Rows(" & i & : & i & ").Select
    End Sub

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Si tu veux sélectionner une seule ligne alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub macro5()
    Dim i
    i = 15
    Worksheets("feuil1").Select
    Rows(i).Select
    End Sub
    Si tu veux sélectionner les lignes de 15 à 20 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub macro5()
    Dim i, j
    i = 15
    j = 20
    Worksheets("feuil1").Select
    Rows(i & ":" & j).Select
    End Sub
    Pour info, concernant la déclaration de tes variables, si tu ne précise pas le type elles seront Variant par défaut (ça économise de l'encre )
    Dans ton cas pas besoin qu'elles soient de type Variant, Integer suffit
    (à moins que tu envisages d'aller plus loin que la 32767ème ligne)
    ce qui peut s'écrire de 2 façons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim i As Integer, j As Integer
    ou
    Dim i%, j%
    @+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 20
    Points
    20
    Par défaut Merci pour tes précisions !
    C'est OK mon problème est résolu.

    Pour mon info, existe-t-il un cours/formation sur les règles de concaténation ?

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut Concatener ?
    Bonjour,

    Je n'avais pas bien lu la question, je m'étais juste arreté sur le code, il me semblait que tu voulais sélectionner une ligne entière.
    Es-tu certains du terme "concatener", c'est à dire faire de plusieurs cellules contigues, une seule ? Ou veux-tu sélectionner plusieurs cellules ?

    Si c'est pour concatener c'est :
    ou via ta variable i = 15
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" & i & ":E" & i)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 20
    Points
    20
    Par défaut Réponse à la question concaténer
    J'entends par concaténer , la possibilité de regrouper des variables dans une instruction VBA - exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rows( i & ":" &  j).select
    où i et j sont des variables incluses dans une instruction.
    Cett possibilité de concaténation est très utile, par contre les règles de syntaxes sont complètement "obscures" pour moi. D'où ma question générale de savoir s'il existe un cours à ce sujet dans ce site.
    Merci !
    Jean-Marie

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Je n'ai jamais vraiment cherché mais je n'ai pas encore vu un tutoriel sur ce sujet bien précis. Tu as par contre deux tutos (au passage très bien expliqué) sur les variables qui pourront déjà te mener sur la piste : celui-ci et celui-là.

    Je peux te donner quelques exemples que tu peux coller dans un module et ainsi comprendre le fonctionnement:
    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
    Sub test1()
    Dim i%, j%
    i = 5
    j = 10
    Range(Cells(1, i), Cells(1, j)).Select
    'ou Range("A" & i & ":A" & j).Select
    End Sub
     
    Sub test2()
    Dim i%, j%, x%
    i = 5
    j = 10
    x = i + j
    MsgBox "i + j = " & x
    End Sub
     
    Sub test3()
    Dim i
    i = Cells(5, 5).Address
    MsgBox "l'adresse de la cellule est " & i
    End Sub
     
    Sub test4()
    Dim i$
    Dim j%
    i = "température"
    j = 15
    MsgBox "aujourd'hui la " & i & " est de " & j & "°"
    End Sub
    Voilà en espérant que ça peut t'éclairer

    @+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Points : 20
    Points
    20
    Par défaut Merci beaucoup Fring pour ton aide !
    Merci encore pour ton aide et tes éclairages.
    Jean-Marie

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

Discussions similaires

  1. concatenation dans une requete
    Par Asiah dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/09/2006, 17h57
  2. caractère '-' dans une commande
    Par javaSudOuest dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 22/02/2006, 17h50
  3. Concaténation d'une variable dans une commande
    Par dreamanoir dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/03/2005, 18h08
  4. select * dans une commande d'1 dataenvirronnement
    Par Sandrine44 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 02/02/2005, 18h15
  5. Réponses: 6
    Dernier message: 05/08/2004, 14h15

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