Macro calculs & reporting automatisés

Provence Vintage

XLDnaute Occasionnel
Bonjour le Forum & les Forumeurs noctambules:)

Je souhaite faire appel à vos compétences pour créer une macro qui dépasse pour le coût largement ce que je sais faire en VBA!:(

Mon objectif est d'automatiser le traitement de données extraites au format XL (calcul & classement en fonction de 3 critères) pour les intégrer dans un outil existant.


Quelques points techniques relevés:

je pense que le fichier extrait chaque jour sera nommé toujours de la même façon pour faciliter, à savoir "guestinhouse", puis supprimer à la fin de l'intégration.

Transformation des points en virgule pour des chiffres
là je suis en train de regarder dans les fils..., celà concerne une seule colonne.

Ouverture & suppression d'un fichier via VBA (avec un outil déjà ouvert en modal)

synthèse des calculs et classement dans l'outil existant et non dans le fichier extrait, sur une feuille nommée "SynthèseExtraction"

Calculs & Classement en fonction de trois critères en VBA



Je vous joint le fichier et tient par avance à vous remercier dans l'aide que vous pourrez m'apporter.

Bonne nuit
A très bientôt sur le Fil

Cijoint.fr - Service gratuit de dépôt de fichiers
 

Staple1600

XLDnaute Barbatruc
Re : Macro calculs & reporting automatisés

Bonjour à tous


Une idée ou deux voir trois en passant
-Données brutes exportées en *csv ou *txt
-Utilisation de la méthode ADO (voir SQL aussi )
-Menu Données/Données externes ( à explorer)

Tout ceci dans le but d'avoir un classeur principal assez léger.

Je te laisse explorer ou non ces pistes

(Moi je vais aux champignons)
 

Provence Vintage

XLDnaute Occasionnel
Re : Macro calculs & reporting automatisés

Le Fil,


J'y suis presque mais...
J'ouvre via un USF(et donc un autre fichier (a)) un fichier xl(b);
le nom de l'onglet dans le fichier (b) peux changer en permanence!
comment puis-je adapter le code ci-dessous pour supprimer toutes les lignes contenant en colonne B les valeurs "PM" ou "PF"
oups....





#Sub Suppression()
Dim i As Long
Dim cell As Range
With Sheets("Sélection")
For Each cell In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
Critère = cell
For i = Range("A65536").End(xlUp).Row To 3 Step -1
Select Case Cells(i, 1).Value
Case Critère
Cells(i, 1).EntireRow.Delete Shift:=xlUp
End Select
Next
Next
End With

End Sub#


Merci à toutes et tous com d'hab!
 

mth

XLDnaute Barbatruc
Re : Macro calculs & reporting automatisés

Bonjour tout le monde :)

Pour tester, ça serait plus facile avec petit un modèle de fichier à extraire, la dernière question ne semble pas correspondre aux premiers fichiers joints , je ne m'y retrouve pas :eek:

Bon week-end à tous :)

mth
 

Provence Vintage

XLDnaute Occasionnel
Re : Macro calculs & reporting automatisés

Hello mth, Stapple, le fil,

Stapple, nous devions ecrire nos messages respectifs en même temps, je n'ai vu le tient que bien après....je ne vois pas comment "piloter" SQL via vba......!
On ne peux pas l'envisager manuellement pour diverses raisons!
Néanmoins,
je lis toujours les sujets filtres auto, filtres élaborés, ...et tcd grace à mth

Bref, vous m'avez donné du boulot :p

je join le fameux deuxième fichier que je dois intégrer!
l'objectif c:

épurer le fichier
enlever les lignes ou en colonne B figure "PM" ou "PF" :mad:
dégager les colonnes "A, C, I, L, M" :)
supression des lignes ou date d'arrivée supérieure de +31 jours à la plus ancienne date d'arrivée :mad:
Traiter tous les doublons: par colonne C, si deux valeurs identiques, balayer les colonnes E, F, G, H, J si Identique, supprimer les lignes identiques en n'en conservant qu'une!
:( :mad: :(
(voir exemple dans fichier, les 4 lignes en rouges sont un ex de ce que l'on trouve quand on tri le fichier par colonne C)

Créer autant d'onglets que de dates d'arrivées, dans le même emplacement de fichier je bosse dessus :confused:

ensuite, par journée:
intégration comme dans le premier cas:
copie ds le fichier 2, création d'un tcd listé de même par catégorie
comprenant les colonnes suivantes: CA, Nombre de Chambres, Prix Moyen, moyenne personnes par chambre, Montée en charge (date arrivée - date d'entrée = nombre de jours entre réservation et arrivée client)

j'insère mon code pour copier les résultats du TCD dans ma base de données et on refait la même chose pour le jour suivant........


Pas gagné.....:eek:


Cijoint.fr - Service gratuit de dépôt de fichiers

Merci à vous
un bon dimanche ensoleillé
a+ sur le fil
 

mth

XLDnaute Barbatruc
Re : Macro calculs & reporting automatisés

Bonjour :)

Tu trouveras un petit essai ci-joint concernant juste la première partie, pour épurer le fichier.
J'ai conscience que le code n'est pas bien écrit :eek:, mais vois si cela peut te dépanner en attendant mieux.
Ceci dit, il y a sans doute un cafouillage dans les colonnes à éliminer, ou dans les colonnes à contrôler pour les doublons, et il faudra certainement que tu corriges le code en indiquant les bonnes colonnes.
Pour la suite, un onglet par jour, + un TCD par onglet ... on va générer un monstre non ? Un seul TCD, ou une autre façon de faire permettrait peut-être d'aboutir au résultat que tu souhaites sans générer un fichier aussi lourd ?
A bientôt et bon dimanche,

mth
 

Pièces jointes

  • Resenteredon.zip
    37.7 KB · Affichages: 45

Provence Vintage

XLDnaute Occasionnel
Re : Macro calculs & reporting automatisés

Bonjour mth, stapple, le fil,

la feuille peux être nommée de n'importe laquelle des façons, fichier changeant au quotidien...
Il faudrait donc arriver à lui indiquer Feuil1 quelque soit son nom, ou feuille active :(

j'essaye et vous dit
merci encore mth

a+ sur le fil
bonne soirée
 

Provence Vintage

XLDnaute Occasionnel
Re : Macro calculs & reporting automatisés

mth, stapple, le fil

mth, oui en effet, Feuil1 ça marche, je testai aussi qd tu m'as écris ;)
par contre j'ai 2, 3 trois merdouilles qd je décompose le code pour le modifier:
pour les colonnes, par ex, garder le nom n'est pas idiot pour controler (pas de doublon...):rolleyes:

stapple, JM ça aurait pu être J pour Jacques :D, mais c peux-être aussi Jean-Marie! :p

a toute ou a + sur le fil

Bonne journée
 

mth

XLDnaute Barbatruc
Re : Macro calculs & reporting automatisés

Bonjour à tous :)

Il faudrait savoir où ça plante ...
si tu bloques remets ton code (en fait un extrait de ton fichier qui a dû être modifié depuis le dernier post, pour que l'on puisse tester avec toi)

@ +

mth
 

Provence Vintage

XLDnaute Occasionnel
Re : Macro calculs & reporting automatisés

mth, le fil,

re coucou,
regarde ci joint, les lignes ne sont pas supprimées!
je ne vois pas l'indication colonne 2 dans le code peux-être que celà vient de là

pourquoi :
#Feuil1.Range("$A$1:$M$" & Derlig)#?
et pas juste col 2?

Cijoint.fr - Service gratuit de dépôt de fichiers

Merci beaucoup
 

mth

XLDnaute Barbatruc
Re : Macro calculs & reporting automatisés

re :)

Tu sais quoi ? je suis vraiment confuse car en relisant je ne comprends pas ce que j'ai voulu dire avec ce code :eek: je me demande si j'ai posté la bonne version (mais suis au bureau et l'autre est à la maison)
Du coup je t'ai fait perdre du temps, sincèrement désolée :eek:

Voici un autre essai avec ce code remplaçant l'ancien:

Code:
With Feuil1
    .Range("A:A,I:I,L:L,M:M").Delete Shift:=xlToLeft
End With
' retirer les lignes PF et PM
    Dim Derlig As Long
    Derlig = Feuil1.Cells(Rows.Count, 1).End(xlUp).Row 'Sheets("resenteredon347056").Cells(Rows.Count, 1).End(xlUp).Row
 
    Rows(1).AutoFilter
 
    Feuil1.Range("$A$1:$M$" & Derlig).AutoFilter Field:=1, Criteria1:="=PF", _
        Operator:=xlOr, Criteria2:="=PM"
   [COLOR=navy][B] Rows("2:" & Range("A1").End(xlDown).Row).Delete Shift:=xlUp[/B][/COLOR]
 
    Feuil1.Range("$A$1:$M$2537").AutoFilter Field:=1
    Rows(1).AutoFilter
 
Application.ScreenUpdating = True

je te laisse essayer ...

@ +

mth
 

Discussions similaires

Réponses
4
Affichages
289

Statistiques des forums

Discussions
312 310
Messages
2 087 130
Membres
103 480
dernier inscrit
etaniere