Création d'un outil avec masque de saisie et reporting

quepuick

XLDnaute Nouveau
Bonjour à tous.

Je vous expose mon problème. J'ai besoin de créer pour mon activité professionnelle un outil excel me permettant de recenser chaque appel client, générer un mail automatique et faire du reporting (mensuel).

Sur le papier c'est simple mais en pratique c'est l'enfer pour moi qui n'y connait rien en excel hormis faire des tableaux :eek:

Donc j'en appelle à votre bienveillance pour me permettre de bâtir cet outil.

Grosso modo j'ai besoin à l'arrivée d'un masque de saisie qui génèrerait un mail automatique et qui enregistrerait les données pour pouvoir faire des statistiques en fin de mois.

Je vous mets en PJ une base simplifiée des éléments dont j'aurais besoins sur le masque de saisie.

Un grand merci par avance....
 

Pièces jointes

  • base.xls
    24 KB · Affichages: 213
  • base.xls
    24 KB · Affichages: 200
  • base.xls
    24 KB · Affichages: 201

quepuick

XLDnaute Nouveau
Re : Création d'un outil avec masque de saisie et reporting

Bonjour

Comme on me l'a aimablement expliqué en MP, ma demande dépasse la simple demande de conseil mais plus de la réalisation.

Et je m'appercois que c'est vraiement un boulot énorme.

Je vais juste reprendre les base de ce projet.

Je me suis donc constitué une base de données avec des champs sur colonnes fixes, seules le nombre de lignes peuvent varier d'un mois à l'autre.

Sans entrer dans les macros pour le moment, j'ai commencer à faire quelques formules pour calculer certaines statistiques toutes bêtes, du genre nombre d'appel sur la période (NBVAL). Le problème avec cette formule c'est que je suis obligée de délimitée le champs de calcul. Or dans mon cas, le nombre de lignes va varier.

comment utiliser cette formule NBVAL en intégrant le nb de colonnes fixe et la dernière ligne non vide?

merci à vous
 

mth

XLDnaute Barbatruc
Re : Création d'un outil avec masque de saisie et reporting

Bonsoir quepuick,

Si cela est compatible avec la structure de ton tableau, tu peux utiliser NBVAL() sur toute une colonne, par exemple =NBVAL(A:A)

Bon courage pour ton travail,

mth
 

quepuick

XLDnaute Nouveau
Re : Création d'un outil avec masque de saisie et reporting

Tout bêtement quoi.... mais effectivement c'est ce qu'il me convient dans mon cas

en faisant juste un -1 pour retirer du calcul la première cellule de titre et je retrouve mes petits.

Par contre je viens de lire quelque part les formules DECALER+NBVAL en nommant une plage dynamique mais est ce que dans mon cas c'est se compliquer pour rien?
 

mth

XLDnaute Barbatruc
Re : Création d'un outil avec masque de saisie et reporting

re :)

Plus compliqué oui mais ça peut-être intéressant, j'ai un peu de mal à te répondre dans l'absolu sans voir un bout de ton fichier.

Si NBVAL() te convient c'est déjà ça, mais si tu veux essayer, poste un extrait de ce que tu as fait pour que l'on t'aide à mettre en place une zone dynamique, comme ça tu pourras juger par toi même en fonction de ce que tu as à faire dans ton fichier et tu verras si c'est une bonne idée ou si ça te complique inutilement.

@ +

mth
 

quepuick

XLDnaute Nouveau
Re : Création d'un outil avec masque de saisie et reporting

Non honnetement la fonction NBVAL que tu m'a donné fonctionne bien pour ce que j'ai à faire.

Petite difficulté cependant.

Toujour le même principe. J'ai donc une colonne qui enregistre les dates d'appels de mes clients.

- Pour calculer le nb d'appel, on vient de le voir, j'utilise la formule NBVAL(A:A) et ça marche

- pour calculer le nombre de jours ouvré j'utilise la formule =NB.JOURS.OUVRES mais cela m'oblige à indiquer l'adresse de la cellule de la date de départ et celle de la cellule de date de fin.
Or je voudrais que la formule aille me rechercher directement la dernière cellule servie (donc non vide).

et là je bloque

Je vous met mon petit fichier de test pour vous donner une idée.
Il s'agit de pouvoir calculer le nombre de jours ouvrés (pas de besoin d'indiquer le nb de jours férié car nous ne travaillons pas ces jours là) sur la colonne A.

merci
 

Pièces jointes

  • STAT TEST.xls
    44 KB · Affichages: 205

quepuick

XLDnaute Nouveau
Re : Création d'un outil avec masque de saisie et reporting

Nouvelle étape:

Coté statistiques à faire sur ce tableau de base contenant mes données, pas de soucis, je devrais pouvoir me debrouiller pour faire des TCD à mon goût (on verra surement plus tard pour les automatiser et générer des rapports...)

Nous sommes plusieurs utilisateurs à nous servir chacun d'un programme excel de saisie qui alimente sur chaque fichier utilisateur un onglet nommé BDD, qui a le même format que le ficher test que j'ai joint tout à l'heure.

L'idée étant de pouvoir "consolider" chaque jour/semaine ou mois (à la demande) la BDD de chaque utilisateur sur mon fichier central et me permette de faire mes stats.

Deux options possible:
- soit lancer une commande depuis le fichier central pour récupperer les données de chaque utilisateur
- soit lancer une commande sur chaque fichier utilisateur pour exporter sur mon fichier centralisateur leur donnée à la suite.

Je ne sais pas si je suis bien clair mais c'est ça un peu l'esprit...

qu'est ce qu'il est plus simple de faire (sachant que les fichiers utilisateur sont bourrés de macro diverse et qu'il existe déjà une macro CONSOLIDATION vers un fichier central que je ne veux pas utiliser...)?
 

quepuick

XLDnaute Nouveau
Re : Création d'un outil avec masque de saisie et reporting

j'ai la macro établit pas un de mes prédécesseurs qui exporte (consolidation) à partir de chaque fichier source les données sur un fichier centralisateur, au cas où si je peux la modifier

Sub Consolidation()
'Procédure qui permet de remonter les informations dans un fichier de consolidation
'La base de donnée BDD de chaque agent sera centralisé sur un fichier commun permettant
'le traitement de l'ensemble des informations collectées
'Procédure enregistrée par Anthony Bourgis & Geoffrey Lebeau

Dim i As Integer
Dim NomFichierConso As String
Const FTYPE_XLS As String = "Fichier Excel,*.xls"
Dim maj
Dim maj2


Feuil2.Unprotect

NomFichierConso = UserForm3.TextBox2.Value

If FileExists(NomFichierConso) Then
' test pour voir si le fichier de consolidation enregistré dans les paramètres existe

maj = msgbox("Souhaitez vous enregistrer les données dans le fichier suivant:" & Chr(13) _
& Chr(13) _
& NomFichierConso & Chr(13) _
& Chr(13) _
& "Cliquez NON pour choisir un autre fichier.", vbQuestion + vbYesNoCancel + 256, "Attention")

Select Case maj
Case vbYes
GoTo Procedure
Case vbNo
NomFichierConso = Application.GetOpenFilename(FTYPE_XLS)
ThisWorkbook.Activate
Feuil2.Cells(12, 2).Value = NomFichierConso
UserForm3.TextBox2.text = NomFichierConso
GoTo Procedure
Case vbCancel
End Select
Else

maj2 = msgbox("Sélectionner le fichier de Consolidation :", vbQuestion + vbOKCancel + 256, "Attention")
Select Case maj2
Case vbOK
NomFichierConso = Application.GetOpenFilename(FTYPE_XLS)
ThisWorkbook.Activate
Feuil2.Cells(12, 2).Value = NomFichierConso
UserForm3.TextBox2.text = NomFichierConso
GoTo Procedure
Case vbCancel
End Select
End If

Feuil2.Protect

Exit Sub

Procedure:

On Error Resume Next

i = 0

Range("A3").Select

Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop

Range(Cells(4, 1), Cells(i + 2, 26)).Select 'Permet de sélectionner la plage contenant
'les informations et le reporting

Application.CutCopyMode = False
Selection.Copy

Workbooks.Open Filename:=NomFichierConso
'ouverture du fichier de consolidation

Sheets("base TCD").Activate
Range("a1").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop


ActiveSheet.Paste 'On colle la plage sélectionnée dans le fichier consolidé
ActiveWorkbook.Close 'Ferme le classeur : consolidé.xls

ActiveWorkbook.Select
Feuil2.Cells(22, 11).Value = "=TODAY()"
'*** à remettre


'Feuil3.Unprotect
'Selection.Delete 'On efface la sélection
'Feuil3.Protect 'On efface la sélection
'' *** Ne pas supprimer les données pour le moment. ***
'' Si l'automatisme est mis en place, la suppression des appels saisis sera irréversible
'' cela laisse un "droit à l'erreur" + laisse la liberté à l'agent de supprimer les données à la fréquence souhaitée

arret:


End Sub
 

quepuick

XLDnaute Nouveau
Re : Création d'un outil avec masque de saisie et reporting

Bonjour

Je relance mon sujet car j'ai juste besoin d'une précision

Je teste actuellement une macro d'importation simple qui va chercher les données directement dans les fichiers utilisateurs et les colle.

voici un extrait de la macro qui indique en gras l'adresse du fichier à ouvir mais j'ai besoin de préciser l'onglet de ce fichier où se trouve mes données et qui s'appelle BDD.

merci!!

Code:
Sub Centraliser()
'

' Macro enregistrée le 18/03/2010 par

    Application.ScreenUpdating = False ' Désactive la mise à jour de l'écran pour accélérer l'ouverture et la fermeture des classeurs
    Workbooks.Open Filename[B]:="C:\Mes Documents\FD\other\Nouveau dossier\TESTMACRO\IMiddle-1.xls"[/B] ' Ouvre IMiddle utilisateur 1.
    Sheets("Données").Select
    Range([A2], [A2].End(xlDown).End(xlToRight)).Select ' Sélectionne de A2 jusqu'en bas à droite
    Selection.Copy
    Range("A1").Select 'Déselectionne la plage
    Windows("Central.xls").Activate ' Revient sur le tableau centralisateur
    Sheets("Centraliser").Range("A2").Select
    ActiveSheet.Paste 'Colle les valeurs / On pourrait faire un collage spécial SpecialPaste
    Selection.End(xlDown).Select ' Va sur la dernière cellule remplie
    ActiveCell.Offset(1, 0).Range("A1").Select ' Descend d'une cellule
    
    Windows("IMiddle-1.xls").Activate
    ActiveWindow.Close ' Ferme Utilisateur 1
 

Statistiques des forums

Discussions
312 500
Messages
2 089 007
Membres
104 003
dernier inscrit
adyady__