Bonjour à tous .j’espère que tout le monde va bien.
Je commence à mieux maitriser excel mais les macros ou autre pas encore – une chose à la fois -.
Je me permets de revenir vers vous car chaque mois, je fais une tache qui est du copier –coller (x109fois) et j’aimerais savoir s’il était possible de l’automatiser.
Je récupère un fichier tous les mois qui est exactement sous la même forme tous les mois à savoir :
- 1 onglet DF9 qui récapitule l’intégralité des autres onglets.
- 1 onglet par département.
Dans chaque onglet, je dois
- aller à la colonne N et rajouter les montants à la colonne L.
- sommer les montants de la colonne L
- reporter dans l’onglet DF9 les nouveaux montants dans la colonne L
- m’assurer que les montants soient justes et que les colonnes N soient bien à 0
Alors chaque mois le nombre de ligne peuvent changer par contre jamais les noms des colonnes ne changent.
Je remercie d’avance la personne susceptible de m’aider.
Facturation T4 2017CNAMTS.xlsx (621,6 Ko)
Bonjour,
J’ai pas tout compris le raisonnement,
Merci de bien préciser le noms des feuilles avec un exemple de ce que cela donnerais en manuel
Ok, j’essaye de plus détaillé .
Merci déjà de prendre en compte mes soucis.
Etape1, je vais dans l’onglet CPAM011
Etape2, je vais dans la colonne N voir s’il y’a des données
Si oui, je vais en L et j’additionne les données de la colonne N donc En L46 il y’aura =L46+N46
Etape 3 : je vide la colonne N en mettant 0 ( une fois que j’ai additionner les données).
Etape 4 je fais une somme dans la colonne Totaux de la colonne N donc en L60=Somme(L4 :L59) le nombre de ligne peut varier.
ETAPE 5 : je filtre sur chaque CODE OC (colonne A) et je note la somme total obtenu en colonne L. (je le note sur un papier)
Je reproduis cela pour chaque ONGLET de cpam011 à CPAM 976.
Etape 5 : dans ‘l’onglet DF9 en colonne L j’additionne mes résultats obtenus dans chaque onglets et ça pour chaque OC.
Etape 6: dans 'longlet DF9, je somme toujours ma colonne L90=Somme(L10:90).
les colonnes sont donc INVARIABLES mais le nombre de lignes peut varier.
Re,
OK, je vais ce que je faire
Mais un peu de patience quand même
Merci de ton aide . C’est vraiment sympa de ta part.
Bonjour,
A tester (Normalement cela doit être bon )
La macro :
Option Explicit
Sub Transfert()
Dim Ws As Worksheet, Wd As Worksheet, Dl%, DernLig%, i%, j% 'Déclaration des variables
Application.ScreenUpdating = False 'Désactive le rafraissement Ecran
DernLig = Sheets("DF9").Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A de DF9
Set Wd = Sheets("DF9")
For Each Ws In Worksheets 'Boucle sur les onglets sauf DF9
If Ws.Name <> "DF9" Then
Application.StatusBar = "Traitement onglet " & Ws.Name
Sheets(Ws.Name).Activate 'Active l'onglet
Set Ws = Sheets(Ws.Name)
Dl = Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A de l'onglet sélectionné
'************************************************************
'* TRAITEMENT DE L'ONGLET SELECTIONNE
'************************************************************
For i = 4 To Dl 'boucle sur les lignes
If Cells(i, 14).Value <> 0 Then 'si la cellue colonne "N" est différent de 0
Cells(i, 12).Value = Cells(i, 12).Value + Cells(i, 14).Value 'Addition de la valeur colonne L + colonne N
Cells(i, 14).Value = 0 'Passe la colonne N à 0
End If
Next i
'Somme des valeurs colonne L
Cells(Dl + 1, 12).Value = Application.WorksheetFunction.Sum(Range(Cells(4, 12), Cells(Dl, 12)))
Cells(Dl + 1, 14).Value = 0
'************************************************************
'* TRAITEMENT ENTRE L'ONGLET SELECTIONNE ET "DF9"
'************************************************************
For i = 4 To Dl 'Double boucle sur l'onglet sélectionné et l'onglet DF9
For j = 10 To DernLig
'Si la valeur de la colonne B de l'onglet sélectionné = la valeur de la colonne B de l'onglet DF9
If Mid(Ws.Cells(i, 2).Value, 5, 8) = Mid(Wd.Cells(j, 2).Value, 5, 8) Then
Wd.Cells(j, 12) = Wd.Cells(j, 12) + Ws.Cells(i, 12) 'Addition de la valeur colonne L de DF9 + colonne L de l'onglet en cours
Exit For 'Si trouvé, sort de la boucle
End If
Next j
Next i
'Somme des valeurs colonne L de DF9
Wd.Cells(DernLig + 1, 12).Value = Application.WorksheetFunction.Sum(Range(Wd.Cells(10, 12), Wd.Cells(DernLig, 12)))
End If
Next Ws
Application.StatusBar = False
Sheets("DF9").Activate
Range("A7").Select
Application.ScreenUpdating = True
MsgBox " Transfert terminé !", vbInformation, "Traitement"
End Sub
Le classeur :
Facturation T4 2017CNAMTS V01.xlsm (602,0 Ko)
1 « J'aime »
Coucou . Je test dans la matinée. Merci je te fais un retour tout à l’heure.
Je refais un extract courant de semaine prochaine , je te dirai si ca marche au top .
en tout cas merci
Bonjour à tous et plus particulièrement @Mimimathy qui m’avait pas mal aide.
la formule a tourner dans la caisse et cette dernière marche au top.
Cependant pour les non initié on a du mal c’est pourquoi j’aimerai savoir si tu pouvais l’améliorer un petit peu ?
mes chefs qui sont très sympa te proposent un gâteau pour te remercier
Bonjour,
Qu’entends tu par
Améliorer quoi, où, ?
Il y a juste à cliquer sur un bouton
Hello , je te confirme le bouton marche parfaitement bien .
En fait, ton script pourrait servir à l’intégralité du service car nous faisons tous ici les mêmes requêtes.
mais comme le vba est sur 1 fichier et qu’aucune des personne ici n’a les compétences pour l’utiliser .
Voilà la requête par rapport à ça.
Idéalement, comme on fait un extract 1 à 2 fois par mois c’est pas évident de réutiliser le code donc
il serait top d’avoir un caneva vierge de l’onglet DF9 avec par exemple un onglet paramétrage dans lequel on indiquerait le chemin de l’extract du fichier source donc “Facturation T4 2017CNAMTS V01.xlsm” .
Ce caneva referait les mêmes calculs que tu as fait la 1ere fois et faudrait juste une fois que les calculs soient fait que tt les colonne « part OC non calculée » de l’onglet DF9 passe à zéro .
Qu’en penses tu ?
Re,
Il faut qu’au départ il y ai un classeur “Facturation T4 2017CNAMTS V01.xlsm” avec l’onglet “DF9” identique, mise à part la colonne “N” remis avec des 0 sur toutes les lignes
En ouvrant ce classeur, un petit bouton pour aller chercher le classeur contenant les diverses CPAM et remplir le classeur “Facturation T4 2017CNAMTS V01.xlsm” - onglet “DF9”, avec les données des CPAM
Hello, je n’ai pas trop compris ta réponse.
Souhaites tu une fichier tram juste pour la form?
Re,
Je recapepete depuis le bedut
-1) Un classeur “Facturation T4 2017CNAMTS V01.xlsm” avec l’onglet “DF9” identique, mise à part la colonne “N” remis avec des 0 sur toutes les lignes
Sur ce classeur, et sur appui du bouton pour la mise en route de la macro, on choisit le dossier et le classeur concerné pour rapatrier les données CPAM
-
- Enregistrement du classeur “Facturation T4 2017CNAMTS V01.xlsm” avec l’onglet “DF9” à jour sous un nom différent
-3) Le classeur “Facturation T4 2017CNAMTS V01.xlsm” avec l’onglet “DF9” d’origine est toujours intact
Ou alors,
Il faudrait faire une copie du classeur “Facturation T4 2017CNAMTS V01.xlsm” avec l’onglet “DF9” d’origine sur le dossier à traiter
Mais comme je n’ai pas compris ta demande dés le départ,
développe ta façon de voir la modification, à savoir que le fichier récepteur qui contient l’onglet DF9, doit contenir la macro, sinon
tram.xls (49 Ko)
Hello, penses tu que cette tram est viable pour toi ?
Re,
Quel colonne ou cellule pour
a chaque fois que l’on clique sur lancer les calculs l’onglet DF9 doit s’initialiser à 0
Est ce que la trame que tu as fourni doit être tel que transmis ?
Ou la colonne “N” doit être à zéro avant le calcul, et après calcul ?
Hello
Alors non la tram en fait est changeante dans le sens ou le cadre change pas ,le contenu des lignes colonnes quant à lui peut changer c’est à dire que le contenu des colonnes A B C D peut changer d’ou le fait qu’il doit etre repris lors des imports.
Quant à la colonne N , c’est après calcul pour bien montrer que les valeurs ont été sommé en L.
Re,
Alors, je vais te dire , NON, c’est pas faisable,
- non la tram en fait est changeante
Si elle est changeante, c’est plus une trame
Que tu me dises, garder le format (ou le cadre sur lequel je m’en fou comme l’an 40)
avec des valeurs qui ne sont plus les mêmes pour une recherche sur des dossiers
Dis moi plutôt de récupérer l’ensemble des données d’un classeur sur un choix, et de placer les résultats sans doublons et les ajouter.
Mais je pense qu’avec tes explications au compte goutte, je passe la main.
Pense simplement que ton JOB, je ne le connais pas, que je ne suis pas dans ton dos, et que pour monter un classeur qui tient la route, et bien il faut des explications CLAIRES - NETTES & PRECISES