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 les infos d'une colonne [XL-2010]


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
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Par défaut concatener les infos d'une colonne
    Bonjour,

    Sur une feuille excel, j'ai des valeurs dans 2 colonnes (A et B)

    La colonne A correspond à des articles et la colonne B correspond à des quantités. Dans la colonne A je peux avoir plusieurs fois le même article.

    Je souhaite dans la colonne G copier les articles et mettre ensemble ce qui sont identiques et dans la colonne H avoir la somme des articles identiques.

    Voici le début de code que j'ai mais je bloque au second If :

    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
    Sub concatenercai()
     
    Dim cai As Range
    Dim conc
     
    For Each cai In Sheets("feuil2").Range("A:A")
     
        If cai <> "" Then
    conc = cai.Value
        If conc <> Range("G:G") Then
    cai.Copy ActiveSheet.Columns("G").Cells(Rows.Count, 1).End(xlUp)(2)
        End If
        End If
     
    Next cai
     
    End Sub

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Ta variable Conc n'est pas typé.
    Sur cette ligne tu lui donne la valeur d'une cellule
    Et sur celle si tu la compare avec une plage de cellules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If conc <> Range("G:G") Then
    Une variable ne peut avoir plusieurs types.

    Peux tu m'éclairer sur ce que doit faire cette condition.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Par défaut
    bonjour,

    Je souhaite voir ci la valeur de la cellule de la colonne A est présente dans la colonne G.

    Si non de la rajouter dans la colonne G.

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Je te propose d'étudier ce code qui, je pense, fait ce que tu souhaites
    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
     
    Sub concatenercai()
     
    Dim rg As Range
    Dim i As Long
    Dim iDest As Long
     
    'boucle sur la colonne A
    For i = 1 To Range("A65536").End(xlUp).Row
        'Cherche la valeur de A dans la colonne G
        Set rg = Range("G:G").Find(Range("A" & i).Value)
     
        If rg Is Nothing Then
            'Ajoute si pas trouvé
            iDest = Range("G65536").End(xlUp).Row + 1
            Range("G" & iDest).Value = Range("A" & i).Value
            Range("H" & iDest).Value = Range("B" & i).Value
        Else
            'Ajoute le montant dans la colonne H
            rg.Offset(0, 1).Value = rg.Offset(0, 1).Value + Range("B" & i).Value
     
        End If
     
    Next i
     
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 93
    Par défaut
    Bonjour,

    Merci pour le code, ça marche. J'ai compris mon erreur et de plus par la suite j'étais partis sur un do loop. Il aurait fallu partir sur un set.

    Merci pour tous je vais continuer a bosser.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/07/2011, 09h07
  2. afficher toutes les lignes d'une colonne d'une BDD + infos relatives à 1 ligne
    Par ju0123456789 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/02/2009, 19h20
  3. requete SQL pour concatener les valeurs d'une colonne
    Par moabomotal dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/08/2007, 11h59
  4. Récupérer les infos d'une colonne de type DataSet
    Par Zugg dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/02/2006, 14h46
  5. Ne prendre que les infos avant une certaine date??
    Par mythtvtalk.com dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/07/2003, 10h20

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