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 :

Requête d'ajout de variable texte


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 40
    Par défaut Requête d'ajout de variable texte
    Hello,

    je suis confronté à un petit soucis d'optimisation dont je ne trouve pas la solution, voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim Lignecom(2 To 100)
     
    For Z = 2 To derli_panier
    If Sheets("Panier").Range("B" & Z) <> "" Then
    If Z > 2 Then sp = Chr(10)
    Lignecom(Z) = sp & Sheets("Panier").Range("G" & Z) & " étiquette"
    End If
    Next
     
    Listepanier = Lignecom(2) + Lignecom(3) + Lignecom(4) + Lignecom(5) + Lignecom(6) + Lignecom(7) + Lignecom(8) + Lignecom(9) + Lignecom(10) + Lignecom(11) + Lignecom(12) + Lignecom(13) 'Ligne à modifier
     
    MsgBox (Listepanier)
    Dans une msgbox, je cherche à avoir toutes les lignes de mon panier ayant une donné, jusqu'ici c'est bon mais la ligne de la variable Listepanier ne me plait pas avez vous une meilleur solution ?

    Merci d'avance

  2. #2
    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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'utiliserais la fonction Join soit Listepanier = Join(Lignecom, VbCrLf) (je l'ai écrit de mémoire donc pas testé) mais on n'est pas obligé de passer par la variable ListePanier. MsgBox avec Join directement fonctionne très bien également

    Pour en savoir plus sur la fonction Join, à lire Utiliser les variables tableaux en VBA Excel
    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

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 40
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    J'utiliserais la fonction Join soit Listepanier = Join(Lignecom, VbCrLf) (je l'ai écrit de mémoire donc pas testé) mais on n'est pas obligé de passer par la variable ListePanier. MsgBox avec Join directement fonctionne très bien également

    Pour en savoir plus sur la fonction Join, à lire Utiliser les variables tableaux en VBA Excel
    C'est pas mal mais ça prend mes 100 Lignecom du coup ça me fait une msgbox à rallonge...

  4. #4
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 40
    Par défaut
    C'est bon j'ai trouver une solution j'ai ajouter une condition de retour à la ligne pour ma variable Lignecom et enlevé la délimitation.

    Merci beaucoup !

  5. #5
    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 176
    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 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    C'est pas mal mais ça prend mes 100 Lignecom du coup ça me fait une msgbox à rallonge...
    C'est normal, parce-que vous utilisez la variable Z que cela réponde aux critères ou pas. Il faut modifier votre façon de gérer la variable tableau en redimensionnant à chaque fois que le critère est VRAI

    Cette procédure fonctionnera parfaitement
    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
    Sub t()
      Const derli_panier As Long = 100  ' Nombre de lignes à parcourir
      Dim Lignecom As Variant
      Dim r As Long
      Dim z As Long
      With Sheets("Panier")
        For r = 2 To derli_panier
          If Len(.Range("B" & r).Value) Then
             If z Then ReDim Preserve Lignecom(z) Else ReDim Lignecom(z)
               Lignecom(z) = .Range("G" & r).Value & " étiquette"
               z = z + 1
          End If
        Next
      End With
      If IsArray(Lignecom) Then MsgBox Join(Lignecom, vbCrLf)
    End Sub
    Et pour en savoir plus, je conseille toujours la lecture de Utiliser les variables tableaux en VBA Excel
    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

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

Discussions similaires

  1. [WD20] Débutant : Ajouter une variable dans un champ texte type JSON
    Par Eliorth dans le forum WinDev
    Réponses: 2
    Dernier message: 21/02/2021, 10h28
  2. Réponses: 3
    Dernier message: 21/05/2014, 08h18
  3. Réponses: 1
    Dernier message: 27/09/2012, 15h57
  4. passer du texte + une requête sql dans une variable
    Par Giantrick dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2007, 18h15
  5. convertir une variable texte en variable date
    Par tafamilk dans le forum ASP
    Réponses: 2
    Dernier message: 12/08/2005, 01h01

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