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 :

Macro Vba pour faire la concaténation et la somme des cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Décembre 2018
    Messages : 19
    Par défaut Macro Vba pour faire la concaténation et la somme des cellules
    Bonjour à tous, forum bonjour,
    J'ai un tableau qui se présente ainsi

    A090 JL20 C12910 C12910-01N B75 40
    A090 JL20 C12910 C12910-01N B75 40
    A090 JL20 C12910 C12910-01N B75 40
    A090 JL20 C12910 C12910-01N B75 40
    A090 JL20 C12910 C12910-01N C75 40
    A090 JL20 C12910 C12910-01N C75 40
    A090 JL20 C12910 C12910-01N D75 40
    A090 JL20 C12910 C12910-01N E75 40
    A090 JL20 C12910 C12910-01N E75 40

    Je souhaiterais faire la somme et la concaténation de ce tableau afin d'obtenir un autre comme suie :

    A090 JL20 C12910 C12910-01N B75 160
    A090 JL20 C12910 C12910-01N C75 80
    A090 JL20 C12910 C12910-01N D75 40
    A090 JL20 C12910 C12910-01N E75 80

    J’en appel à votre aimable soutien si quelqu’un avait la solution
    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour

    Si j'ai bien compris tu devrais avoir un total de 160 pour les 4 premières lignes ??????


    Joyaux Noel.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Décembre 2018
    Messages : 19
    Par défaut
    D'abord merci pour votre réponse,
    La 5e colonne indique le nom d'un ouvrier.
    La 6e colonne indique la quantité travaillée par ce dernier.
    L'idée, c'est de parcourir la 5e colonne, supprimer les doublons et mettre la somme dans la 6e colonne. Autrement dit, c'est d'avoir la quantité totale travaillée par cet ouvrier.

    Merci et joyeux noël.

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    sbeh el khir, bonjour à tous
    essaye avec :
    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
    39
    40
    41
    Sub Testtt()
    Application.ScreenUpdating = False 'juste pour arrêter affichage écran et améliorer le temps d'exécution du macro
     
    '************************************************************************************************************************
    Dim unique As New Collection
    Dim i As Integer
    On Error Resume Next
    For Each Cel In Range("E1:E" & [E65000].End(xlUp).Row)
    If Cells(Cel.Row, 5) <> "" Then
        unique.Add Cel.Value, CStr(Cel.Value)
        End If
    Next Cel
    With Sheets("feuil2")
    .Activate
    On Error GoTo 0
    For i = 1 To unique.Count
    .Cells(i, 5) = unique(i)
    Next i
    dernligne = .Range("E" & Rows.Count).End(xlUp).Row
    TABLO = Sheets("feuil1").Range("A1", "F" & Sheets("feuil1").Range("F" & Sheets("feuil1").Rows.Count).End(xlUp).Row)
    Dim somme As Variant
    For j = 1 To dernligne
    somme = 0
    For i = LBound(TABLO, 1) To UBound(TABLO, 1)
                 If .Cells(j, 5) = TABLO(i, 5) Then
                    somme = somme + TABLO(i, 6)
                    .Cells(j, 6) = somme
                    .Cells(j, 1) = TABLO(i, 1)
                    .Cells(j, 2) = TABLO(i, 2)
                    .Cells(j, 3) = TABLO(i, 3)
                    .Cells(j, 4) = TABLO(i, 4)
     
                 End If
      Next i
      Next j
     End With
    Sheets("feuil2").Select
     
    MsgBox ("Regroupement effectué avec succès .... ")
    Application.ScreenUpdating = True
    End Sub
    fichier à tester
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Décembre 2018
    Messages : 19
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    fichier à tester
    Tout d'abord ,veillez excusée, je ne suis pas un informaticien , je suis qu'un débutant en VBA
    Merci beaucoup ça fonctionne très bien juste un petit détails que j'ai oublié de le dire dé le début.
    Le fichier que vous venez de me l'envoyer fonctionner très bien pour un tableau mono référence la 4e colonne, c'est la colonne des références.
    Exemple :

    Tableau initial

    A090 Jl20 C12910 C12910-01N B75 40
    A090 Jl20 C12910 C12910-01N B75 40
    A090 Jl20 C12910 C12910-011 B75 40
    A090 Jl20 C12910 C12910-011 B75 40
    A090 Jl20 C12910 C12910-011 D75 40
    A090 Jl20 C12910 C12910-011 D75 40
    A090 Jl20 C12910 C12910-011 E75 40
    A090 Jl20 C15710 C15710-011 D75 40
    A090 Jl20 C15710 C15710-011 D75 40
    A090 Jl20 C15710 C15710-011 D75 40

    Tableau final :

    A090 Jl20 C12910 C12910-01N B75 80
    A090 Jl20 C12910 C12910-011 B75 80
    A090 Jl20 C12910 C12910-011 D75 80
    A090 Jl20 C12910 C12910-011 E75 40
    A090 Jl20 C15710 C15710-011 D75 120

    J’espère que j'ai bien expliqué et que je n'ai rien oublié

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    re
    je ne suis pas un informaticien , je suis qu'un débutant en VBA
    Moi aussi autodidacte
    C15710-011 D75 40
    c'est pas 120 ????

    La dernière ligne du tableau final normalement 120 non???

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu es sûr de ton second tableau, qu'en première ligne le total est 40 plutôt que 160 ?

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Décembre 2018
    Messages : 19
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,

    Tu es sûr de ton second tableau, qu'en première ligne le total est 40 plutôt que 160 ?
    Oui, vous avez raison, je viens de la corriger merci.

  9. #9
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Ne serait-il pas plus simple d'utiliser un TCD ?
    Pas besoin de macro ...
    Nom : TCD.jpg
Affichages : 288
Taille : 86,0 Ko

  10. #10
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Décembre 2018
    Messages : 19
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    Bonjour,

    Ne serait-il pas plus simple d'utiliser un TCD ?
    Pas besoin de macro ...
    Nom : TCD.jpg
Affichages : 288
Taille : 86,0 Ko
    Merci pour votre proposition , malheureusement je ne peux pas utiliser un TDC vu que ce tableau va subir une autre modification .

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

Discussions similaires

  1. Comment faire évoluer ma Macro VBA pour tenir cpte de 3 points : ;-))
    Par Bernardini dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/03/2015, 13h56
  2. [XL-2013] Simplifier un code macro en VBA pour faire un tri d'une liste personnalisée
    Par phanoulevoyou dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 17/11/2013, 12h23
  3. compiler du vba pour faire une dll (ou equivalent)
    Par emmesse2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/11/2008, 10h09
  4. Macro VBA pour mettre colonne en ligne avec cellule fusionnée
    Par dany13 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/01/2008, 06h09
  5. [VBA-E] Macro VBA pour personaliser mon .doc depuis mon .xls
    Par korntex5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2006, 16h01

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