Cellule Identique additionner autre cellule

Bonjour le Forum !

Je recherche une Formule VBA.

Me voici dans un nouveau cas, je ne peux pas fournir le Excel exacte trop gros mais pour schématiser l'affaire je souhaite:

Dans ma Colonne A j'ai des Noms dans ma Colonne B j'ai les points que chaque Noms possèdent.

(Ces Noms et Points sont ajouté par copier collé plusieurs d'un seul coup..)

Si le même Noms revient j'aimerai alors que ses points soient additionné en face du premier Nom et supprime se Nom doublon..

On peu passer par un Bouton VBA pour ceci.

Merci à ceux qui vont se lancer dans cette recherche pour m'aider !

Bonjour Sebyg,

je te retourne ton fichier modifié :

Ctrl e ➯ travail effectué !


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

C'est vraiment parfait ! Malheureusement je n'arrive pas à l'adapter ni à comprendre les lignes de VBA.

Ci-dessous j'ai essayé de la modifier car mon tableau commence en ligne 6 et les cellules à additionner sont en colonne C.

D’où le A6 et le C ... xD

Sub Essai()
  Dim dlig&: dlig = Cells(Rows.Count, 1).End(3).Row
  If dlig = 1 Then Exit Sub
  Dim lig&: Application.ScreenUpdating = 0
  Range("A6:C" & dlig).Sort [A6], 1
  For lig = dlig - 1 To 2 Step -1
    With Cells(lig, 1)
      If .Value = .Offset(1) Then
        .Offset(, 1) = .Offset(, 1) + .Offset(1, 1)
        Rows(lig + 1).Delete
      End If
    End With
  Next lig
End Sub

J'ai des 0 qui apparaisse en colonne B en plus

Bonjour à tous

mauvaise idée de faire une addition comme sur une fiche papier (on gomme et on réinscrit au crayon papier la nouvelle somme)

laissons 1970 derrière-nous

en informatique on garde chaque valeur (collage des nouvelles valeurs sous les précédentes), et on demande à Excel de faire tout le reste tout seul, sans programmation.

on fait un simple TCD

aucun VBA ni aucune formule

amitiés à tous

Bonjour jmd,

J'aime bien les années 1970... J'était loin d'être née

Justement pour cette fois le tableau croisé dynamique ne m'aidera pas. Il me faut vraiment une VBA comme l'a fait dhany.

Seul Hic je suis une bille j'arrive pas à l'adapter à mon fichier

Bonjour,

@ Sebyg,

Que contient alors la colonne B ?

Joins un fichier représentatif.

Cdlt.

pour cette fois le tableau croisé dynamique ne m'aidera pas.

pourquoi donc ?

Que contient alors la colonne B ?

Joins un fichier représentatif.

Alors voilà j'ai simplifié mon Excel pour pouvoir vous donner la Feuille.

pour cette fois le tableau croisé dynamique ne m'aidera pas.

pourquoi donc ?

La personne qui va l'utiliser faut juste copier coller cliquer sur un bouton et HOP tout est fini.

Si je lui demande de faire un TCD puis faire sa mise en page autour etc.. C’est perdu d'avance je ne lui ferai pas gagner de temps.

Bonjour Sebyg,

cette réponse est par rapport à ton post de 09:32 et ton MP.

je te retourne ton fichier joint en MP (qui est non confidentiel) :

dhany

@Sebyg

cette réponse est par rapport à ton post de 11:40.

je te retourne ton fichier de ce post :

même adaptation, mais attention : le tri est fait jusqu'en colonne Q !

regarde aussi la sub Worksheet_BeforeDoubleClick()

dhany

Quand je l'adapte à mon fichier Excel je ne sais pas pourquoi mais ça bug sur cette ligne:

Range("A6:Q" & dlig).Sort [A6], 1

Sub Résumé()
  Dim dlig&: dlig = Cells(Rows.Count, 1).End(3).Row
  If dlig = 5 Then Exit Sub
  Dim lig&: Application.ScreenUpdating = 0
Range("A6:Q" & dlig).Sort [A6], 1
  For lig = dlig - 1 To 6 Step -1
    With Cells(lig, 1)
      If .Value = .Offset(1) Then
        .Offset(, 2) = .Offset(, 2) + .Offset(1, 2)
        Rows(lig + 1).Delete
      End If
    End With
  Next lig
End Sub

Il me dit "La méthode sort de la classe range à échoué"

EDIT: C'est ma Faute !!! J'avais mis une protection à mon fichier c'est pour cela que ça ne fonctionnais pas. Du coup est-il possible d'y mettre une protection ?

tu peux laisser la protection, mais utilise ce code VBA en remplaçant "loup" par ton vrai mot de passe :

Option Explicit

Sub Résumé()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim dlig&: dlig = Cells(Rows.Count, 1).End(3).Row
  If dlig = 5 Then Exit Sub
  Dim lig&: Application.ScreenUpdating = 0
  ActiveSheet.Unprotect "loup"
  Range("A6:Q" & dlig).Sort [A6], 1
  For lig = dlig - 1 To 6 Step -1
    With Cells(lig, 1)
      If .Value = .Offset(1) Then
        .Offset(, 2) = .Offset(, 2) + .Offset(1, 2)
        Rows(lig + 1).Delete
      End If
    End With
  Next lig
  ActiveSheet.Protect "loup"
End Sub

si tu as mis une protection simple sans mot de passe, enlève simplement "loup" :

en haut : ActiveSheet.Unprotect

en bas : ActiveSheet.Protect

dhany

@Sebyg

attention : j'ai modifié le code VBA de mon post de 16:00

dhany

dans ce fichier, la feuille "Feuil1" est protégée avec le mot de passe "loup" :

sans déprotéger la feuille, un clic sur le bouton "Résumé"

fait le travail sans qu'un plantage se produise.

dhany

Rechercher des sujets similaires à "identique additionner"