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 écrire une ligne de code très longue sur plusieurs lignes


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut Comment écrire une ligne de code très longue sur plusieurs lignes
    Bonjour,

    Est-il possible d'écrire une ligne de code très longue sur plusieurs lignes ?

    Si oui comment ?

    Merci pour votre aide

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    Forum VBa donc

    un espace à la coupure désirée, un "_" et "enter pour mettre en ligne suivante, attention de ne pas mettre après n'importe quelle instruction
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(I, 2).Formula = "=if(" & .Cells(I, 1).Address & "="""","""",VLookup(" & .Cells(I, 1).Address & ", feuil1!A2:E18, 2, False))"
    peut devenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     .Cells(I, 2).Formula = "=if(" & .Cells(I, 1).Address & _
        "="""","""",VLookup(" & .Cells(I, 1).Address & ", feuil1!A2:E18, 2, False))"

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Ah bon, résolu ?, content de t'avoir connu............

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 5
    Points
    5
    Par défaut Merci
    MDR,

    Moi ton astuce m'a aidé en tant que novice en VBA

    Merci pour ta réponse même avec plusieurs année de retard ;-)

    Séfal

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Bonjour à tous,

    Je me permet de remonter le sujet car la solution proposée m'a bien aidée pour faire un retour de ligne dans le code de VBA..

    Par contre, il semblerait que j'ai trop de caractère dans une seule ligne car j'obtiens un message d'erreur : "trop de caractère de continuité de ligne"..

    Et je suis bloqué..

    C'est vrai que mon code pourrait être un peu plus joli sans doute mais ça marche... jusqu'à 25 expressions :

    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
    'injection dans act
    Sheets("act").Cells(i, 1).Value = Sheets("mep").Cells(f, 1) _
                                & "," & Sheets("mep").Cells(f, 2) _
                                & "," & Sheets("mep").Cells(f, 3) _
                                & "," & Sheets("mep").Cells(f, 4) _
                                & "," & Sheets("mep").Cells(f, 5) _
                                & "," & Sheets("mep").Cells(f, 6) _
                                & "," & Sheets("mep").Cells(f, 7) _
                                & "," & Sheets("mep").Cells(f, 8) _
                                & "," & Sheets("mep").Cells(f, 9) _
                                & "," & Sheets("mep").Cells(f, 10) _
                                & "," & Sheets("mep").Cells(f, 11) _
                                & "," & Sheets("mep").Cells(f, 12) _
                                & "," & Sheets("mep").Cells(f, 13) _
                                & "," & Sheets("mep").Cells(f, 14) _
                                & "," & Sheets("mep").Cells(f, 15) _
                                & "," & Sheets("mep").Cells(f, 16) _
                                & "," & Sheets("mep").Cells(f, 17) _
                                & "," & Sheets("mep").Cells(f, 18) _
                                & "," & Sheets("mep").Cells(f, 19) _
                                & "," & Sheets("mep").Cells(f, 20) _
                                & "," & Sheets("mep").Cells(f, 21) _
                                & "," & Sheets("mep").Cells(f, 22) _
                                & "," & Sheets("mep").Cells(f, 23) _
                                & "," & Sheets("mep").Cells(f, 24) _
                                & "," & Sheets("mep").Cells(f, 25)
    Merci d'avance pour vos suggestions !

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2017
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 541
    Points : 330
    Points
    330
    Par défaut
    Bonjour Fredjo71,


    Je scinderais ta ligne en attribuant une valeur a une variable ou je ferais une boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    a = Sheets("mep").Cells(f, 1) _
                                & "," & Sheets("mep").Cells(f, 2) _
                                & "," & Sheets("mep").Cells(f, 3) _
                                & "," & Sheets("mep").Cells(f, 4) _
    b = Sheets("mep").Cells(f, 5) _
                                & "," & Sheets("mep").Cells(f, 6) _
                                & "," & Sheets("mep").Cells(f, 7) _
                                & "," & Sheets("mep").Cells(f, 8) _ 
     
     
    Sheets("act").Cells(i, 1).Value = a & b

  7. #7
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut Avec une boucle pour ma par
    Hello

    pour ma part je travaillerais avec une boucle
    en fixant le nb de cellules de la ligne a "concatener"

    bat

    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
     
    Sub Macro1()
     
    Dim sTemp As String
    Dim lNbCel As Long ' Nombre de Cellules à concatener
     
    lNbCel = 25
     
    With Sheets("mep")
     
    'f = 1 'Pour test
    'i = 1 'Pour test
     
     For x = 1 To lNbCel
     
      If x < lNbCel Then 'La condition permet de ne pas ajouter la virgule a la suite de la derniere cellule
       sTemp = sTemp & .Cells(f, x) & ","
      Else
       sTemp = sTemp & .Cells(f, x)
     
      End If
     Next x
     
    Sheets("act").Cells(i, 1).Value = sTemp
    End With
     
    End Sub

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci pour vos suggestions !! j'ai finalement trouvé (la nuit porte conseil ), mais j'ai utilisé une astuce ressemblant à celle de JPVBA :

    J'ai l'impression que comme ceci, on évite la limite.. :

    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
    36
    37
    38
    'constitution de temp
     
                                 temp = Sheets("mep").Cells(f, 1) _
                                & "," & Sheets("mep").Cells(f, 2) _
                                & "," & Sheets("mep").Cells(f, 3) _
                                & "," & Sheets("mep").Cells(f, 4) _
                                & "," & Sheets("mep").Cells(f, 5) _
                                & "," & Sheets("mep").Cells(f, 6) _
                                & "," & Sheets("mep").Cells(f, 7) _
                                & "," & Sheets("mep").Cells(f, 8) _
                                & "," & Sheets("mep").Cells(f, 9) _
                                & "," & Sheets("mep").Cells(f, 10) _
                                & "," & Sheets("mep").Cells(f, 11) _
                                & "," & Sheets("mep").Cells(f, 12) _
                                & "," & Sheets("mep").Cells(f, 13) _
                                & "," & Sheets("mep").Cells(f, 14) _
                                & "," & Sheets("mep").Cells(f, 15) _
                                & "," & Sheets("mep").Cells(f, 16) _
                                & "," & Sheets("mep").Cells(f, 17) _
                                & "," & Sheets("mep").Cells(f, 18) _
                                & "," & Sheets("mep").Cells(f, 19) _
                                & "," & Sheets("mep").Cells(f, 20) _
                                & "," & Sheets("mep").Cells(f, 21) _
                                & "," & Sheets("mep").Cells(f, 22) _
                                & "," & Sheets("mep").Cells(f, 23) _
                                & "," & Sheets("mep").Cells(f, 24) _
                                & "," & Sheets("mep").Cells(f, 25)
     
                                temp = temp & "," & Sheets("mep").Cells(f, 26) _
                                & "," & Sheets("mep").Cells(f, 27) _
                                & "," & Sheets("mep").Cells(f, 28) _
                                & "," & Sheets("mep").Cells(f, 29) _
                                & "," & Sheets("mep").Cells(f, 30) _
                                & "," & Sheets("mep").Cells(f, 31) _
                                & "," & Sheets("mep").Cells(f, 32) _
                                & "," & Sheets("mep").Cells(f, 33) _
                                & "," & Sheets("mep").Cells(f, 34) _
                                & "," & Sheets("mep").Cells(f, 35)

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

Discussions similaires

  1. [PowerShell] commande longue sur plusieurs lignes sous powershell
    Par utilisateur38 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 15/10/2015, 17h48
  2. [XL-2007] Excel-VBA : Formule longue sur plusieurs lignes erreur fin d'instruction
    Par Pauline1374 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/03/2014, 17h46
  3. Réponses: 5
    Dernier message: 26/04/2010, 18h14
  4. Réponses: 3
    Dernier message: 01/06/2007, 16h13
  5. Comment écrire une très longue variable dans un fichier ?
    Par hijodelanoche dans le forum Langage
    Réponses: 8
    Dernier message: 17/11/2005, 16h12

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