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 :

Concatener des valeurs dans une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 69
    Par défaut Concatener des valeurs dans une cellule
    bonjour,

    Un petit souci :

    Sous Excel j'ai un tableau de cette forme en 3 colonnes

    Colonne A Colonne B Colonne C
    ID Statut Opérateur
    1 ouvert x
    2 ouvert x
    3 clos y
    4 ouvert z

    Ce que je veux ; je recherche toutes les demandes dont le statut est ouvert pour un opérateur et dans une cellule je concatène les ID.

    si statut = ouvert et opérateur = x alors je copie le numéro d'ID dans une cellule; exemple D1

    pour ce tableau en D1 j'aurais 1 2

    le début de macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For x= 2 to 5 step 1
    nvariable 1 = Range ("B" & x).value
    nvariable2 = Range ("C" & x).value
    If nvariable1="ouvert" and nvariable2="x" then D1=Range ("A" & x).value

    La je bloque car j'ai le résultat d'une colonne comment avoir les 2 (1 2 )

    Merci pour votre aide

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    une méthode parmi d'autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro1()
    Dim dl As Long, cel As Range, plg As Range, tb As String
    dl = Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne
    Set plg = Range("B2:B" & dl)
    For Each cel In plg
      If cel = "ouvert" And cel.Offset(0, 1) = "x" Then
        tb = tb & cel.Offset(0, -1) & " "
      End If
    Next cel
    Range("D1") = Trim(tb)
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 69
    Par défaut
    merci ça fonctionne nickel, mais peux tu mettre des commentaires afin que j’essaie de comprendre, merci d'avance

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    Dim dl As Long, cel As Range, plg As Range, tb As String
    dl = Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne en colonne A ou 1ère ligne remplie en commençant par la fin
    Set plg = Range("B2:B" & dl) 'variable range qui contient la plage "A2:A et dl: exemple A2:A10 si 10 est dern. ligne
    'for each est une boucle
    For Each cel In plg 'on va chercher dans la plage en scrutant chaque cellule en B
      If cel = "ouvert" And cel.Offset(0, 1) = "x" Then 'si la cellule en B = ouvert et la cellule en C = x
        tb = tb & cel.Offset(0, -1) & " " 'on met la valeur de A + un espace dans une variable texte , qu'on va incrementer
      End If
    Next cel 'on verifie la cellule suivante
    Range("D1") = Trim(tb) 'on met en D1, le résultat obtenu dans tb, en enlevant l'espace en trop "trim"
    End Sub
    si ton problème est résolu, penses à cliquer sur
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 69
    Par défaut concatener
    ok merci pour toutes ces infos, vraiment sympa !!! ok dossier clos

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

Discussions similaires

  1. [XL-2007] Copier que les cellules avec des valeurs dans une plage.
    Par Fred4345 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 24/11/2011, 20h20
  2. [Toutes versions] Récupérer des valeurs dans une ligne dont une seule cellule est selectionnée
    Par Tommy57 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/02/2010, 20h37
  3. Dérouler des valeurs dans une cellule
    Par beast666 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/04/2009, 16h59
  4. Inserer des valeurs dans une cellule
    Par azerty53 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/09/2006, 16h27
  5. fonction récupérant des valeurs dans une fonction popup...
    Par petitsims dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2005, 14h51

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