Regrouper dans une base de données

  • Initiateur de la discussion Initiateur de la discussion Caninge
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Caninge

Guest
Bonjour à tous,

Dans mon application je posséde :

1 feuille (Base de données)
3 feuilles (A;B;C)
1 feuille (Cumul)

Comment faire pour regrouper toutes les entrées des feuilles A B C dans la feuille cumul .

Merci
 

Pièces jointes

bonjour Caninge et le forum

Essai de transfert des feuilles A, B, C vers la feuille récapitulative "Cumul".

Un bouton permet de commander l'opération.

Il est possible d'automatiser la commande par une macro placée dans le module de la feuille "Cumul" en lieu est place de la procédure du bouton :

Private Sub CommandButton1_Click()
Transfert
End Sub

ou en dessous si l'on veut conserver les deux mises à jour.

Private Sub Worksheet_Activate()
Transfert
End Sub


Cordialement

CBernardT
 

Pièces jointes

Bonjour

J'ai appliqué la macro sur mon projet.

J'ai même rajouté 4 lignes pour trier dans la feuille "Récapitulatif" les codes et quantités.

Ca marche bien, par contre si il n'y a rien dans les feuilles A B et C,
Code Qté Qté Qté s'affichent dans les cellules D7:C7 ??

je t'envoie la macro transformé.

Merci d'avance!!

Sub Transfert()
Dim Tbl As Range
Dim MyRange As Range
Dim MyPlage As Range
Dim C As Range, Cbis As Range
Dim j As Byte
Application.ScreenUpdating = False
'Effacement des anciennes données du tableau
Worksheets("Récapitulatif").Range("B12", "C100").ClearContents
'Mise en boucle de toutes les feuilles sauf les feuilles "Cumul" et "base"
For j = 3 To Sheets.Count
'Déclaration des plages à consulter
Set MyRange = Range(Sheets(j).Range("B12"), Sheets(j).Range("B66").End(xlUp))
Set MyPlage = Sheets("Récapitulatif").Range("Plage")
For Each C In MyRange
If Application.CountIf(MyPlage, C) = 0 Then ' Boucle de mise en tableau des articles absents et de leurs quantités
If Sheets("Récapitulatif").Range("B12") = "" Then ' inscription de l'article
Sheets("Récapitulatif").Range("B12") = C
Sheets("Récapitulatif").Range("B12").Offset(0, 1) = C.Offset(0, 1) 'Inscription de la quantité
Else
Sheets("Récapitulatif").Range("B100").End(xlUp).Offset(1, 0) = C ' inscription de l'article
Sheets("Récapitulatif").Range("B100").End(xlUp).Offset(0, 1) = Sheets("Récapitulatif").Range("B100").End(xlUp).Offset(0, 1) + C.Offset(0, 1) 'Inscription de la quantité
End If
Else
For Each Cbis In MyPlage 'Boucle de mise en tableau des quantités des articles déjà présents
If Cbis = C Then
Cbis.Offset(0, 1) = Cbis.Offset(0, 1) + C.Offset(0, 1) 'Inscription de la quantité
Exit For
End If
Next Cbis
End If
Next C
Next j

Range("B12:c100").Select
Selection.Sort Key1:=Range("B12"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Application.ScreenUpdating = True

Range("A1").Select

End Sub
 

Pièces jointes

bonsoir Caninge

petit bug des tableaux vides corrigé.

Macro d'automatisation installée ;

La mise à jour du tableau s'effectue à l'activation de la feuille Cumul.

Le bouton conservé, permet de commander manuellement l'opération.

Le tri croissant des codes est mis en place.


Cordialement

CBernardT
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL pour MAC Graphique
Réponses
12
Affichages
322
  • Question Question
Microsoft 365 bouton supprimer
Réponses
4
Affichages
144
Réponses
5
Affichages
465
Retour