Besoin d'aide pour faire mon bilan

Magzonex

XLDnaute Junior
Allo

il me reste une chose a faire, mais complexe pour moi

le but est en cellule E7 double cliquer dessus pour faire apparaitre le calendrier et sélectionner une date de début et faire la même chose pour la cellule H7 pour la date de fin, en suite cliquer sur le boutton (afficher le bilan )pour que tout les renseignement de la base de donnée ( feuil BD1 de A jusqu'a N) s'affiche correctement dans ma feuille Bilan sois les information de A10 jusqu'a K16

Ainsi que les commentaires de A20 à B33

merci de votre aide...

Ms. Paritec m'avais déja fais ça... et sela marche encore très bien mais je suis pas capable de l'adapter a se nouveau projet.
 

Pièces jointes

  • Classeur1.xlsm
    86.7 KB · Affichages: 102
  • Classeur1.xlsm
    86.7 KB · Affichages: 112
  • Classeur1.xlsm
    86.7 KB · Affichages: 101

Magzonex

XLDnaute Junior
Re : Besoin d'aide pour faire mon bilan

Allo

j'ai avancer un petit peux mais toujours besoin de votre aide s.v.p

j'ai mis en place le calendrier dans les cellules E7 ( date de début) et H7 (date de fin) il reste juste dans le dossier module, general ,

Sub jours()

?????????

End Sub

quand on clique sur Afficher le bilan il vérifie que la date du début (Feuil 1 cell E7) et plus petite que la cell H7 et puis Call jours

dans cette fontion je voudrais quil prenne ma base de donnée et qu'il affiche les resultat dans la feuil1

Ex: 01 janv 2012 au 07 janv 2012

Date Salon Quille Salon quille Grande Salle Grande Salle Caserne Caserne Salon
01 jan 2012 12,12 .. 23.65 23,76 ... ... ... ...
02
03
04
05
06
07

Date Commentaire
01 jan 2012 test 1
02
03
04
..... ainsi de suite

il n'y a que une entrer par jours dans la base de donnée alors on affiche que 7 jours a la fois

merci de votre aide...

j'espère que quelqun va pouvoir m'aider la dessus....

bonne journée

voici ou en est rendu mon projet....
 

Pièces jointes

  • Classeur1.xlsm
    80.8 KB · Affichages: 62
  • Classeur1.xlsm
    80.8 KB · Affichages: 60
  • Classeur1.xlsm
    80.8 KB · Affichages: 65

david84

XLDnaute Barbatruc
Re : Besoin d'aide pour faire mon bilan

Bonsoir,
2 remarques :
Ms. Paritec m'avais déja fais ça... et sela marche encore très bien mais je suis pas capable de l'adapter a se nouveau projet.
Il faudrait que tu arrives un peu à comprendre les codes fournis, sinon cela veut dire que l'aide apportée par Paritec t'auras réglé ton problème sur le moment mais ne t'auras pas fait avancer dans la compréhension d'Excel...
sinon, si tu dis que ce code te donne entière satisfaction, pourquoi ne nous indiques-tu pas où il se trouve dans ton fichier ?
Cela nous permettrait de te l'expliquer et de t'aider à l'adapter.

dans cette fontion je voudrais quil prenne ma base de donnée et qu'il affiche les resultat dans la feuil1
Veux-tu passer par du VBA ? Pourquoi pas bien sûr mais d'après ce que je crois comprendre, cette partie est aisément traitable par formule.
Après, cela dépend du nombre de données que tu as dans ton fichier original et s'il faut ou non passer par des formules matricielles mais au moins saches-le.

Autre point : dans ton exemple en feuille Bilan, toutes les dates sont différentes (pas de doublon) : est-ce le cas dans ton fichier réel ?
A+
 

Magzonex

XLDnaute Junior
Re : Besoin d'aide pour faire mon bilan

Allo

ou bonne après midi pour moi .... il est juste 16h15 chez moi.... alors bon soir a vous tous

Pour répondre a David84 ...

Bien oui Paritec ma aider énormément et en n'a fais énormément pour moi je l'avoue .. je me débrouille quand même, mais je serais jamais aussi bon que Paritec .. et il le sais très bien ... je lui est dit mille fois merci pour se très gros projet qui fonctionne depuis près de 1 ans et aucun bog .... encore une fois si tu lis se message Paritec ... merci encore.

dans se projet maitenant il y a tous les code de me client ... compte bancaire, mot de passe de tout les serveur .. mot de passe de ma boite de courrier ... et j'en passe alors je ne peux te fournir se document et mettre sa au grand jours devant tout le monde

et de plus la fonction que je demande ... de afficher le résultat entre les deux dates oui le mien le fais mes pas du tout du meme genre ... dans la fonction de Paritec ses beaucoup plus complexe ... il calcul le total des heures travaillers même avec plusieur date en doubelon il calcul les pièces avec Tps et Tvq... il donne en détail toute les heures travailler par date,lieux,montant et le détail de toute les pièces vendu par date,lieux,montant ... ainsi que le graphique de tout sa .. oufffff excuse mon Paritec si j'ai oublier quelque chose il y a tellement d'ouvrage et la je parle que de la feuille bilan ... se projet contient plus de 17 page ... une 20 userforms ... 5 modules .... alors vraiment pas la même chose que je demande .. pour se nouveau projet...

et oui dans le projet initiale il y a des doubelon (date) .. mais pas dans le nouveau projet.

si tu as regarder le fichier joint tu a pu voir que j'ai tout fais moi même ... alors surement que j'ai apris depuis le temps ... mais la j'ai besoin de vous le pro du Excel VBA .... et ses pas moi...hahahahah

alors je prend le temps de bien vous explique comment j'aimerais que cela fonctionne... cars oui je sais pas trop quois écrire dans le code

Sub jours()

??????

End Sub

Bilan (feuil1)
Base de donnée (feuil3) nom (BD1)

explication:

dans la feuil1 (bilan)
quand on clique sur la cellule E7 un calendrier s'ouvre, on choisi la date et elle s'inscrie dans le cellule (ex: 01-janv-2012) on fait la même chose pour la cellule H7, on choisi une date (ex: 07-janv-2012) la ou est mon soussi de faire le code est quant on clique sur le boutton Afficher le bilan

code:
Private Sub CommandButton2_Click()
If Cells(7, 5) > Cells(7, 8) Then MsgBox "La date de fin doit être supérieure à la date de Début": Exit Sub
Call jours
End Sub

jusque la tout est ok ... il vérifie que la date de départ est plus petit que la date de fin et se qui nous a mene a

Call jours

ses dans se code.... qui me cause problème a crée.

alors j'y viens

je voudrais que entre les dates 01-janv-2012 et 07-janv-2012 dans la base de donnée(feuil3 ... nom BD1) et(pas plus que 7 jours et aucune date en double) se retrouve dans la feuil1 (bilan)
01-janv 2012 de A10 à K10 les infos sont dans Feuil3 (BD1) de A à K
02-janv 2012 de A11 à K11
03-janv 2012 de A12 à K12
04-janv 2012 de A13 à K13
05-janv 2012 de A14 à K14
06-janv 2012 de A15 à K15
06-JANV 2012 DE A16 à K16

un saut de 3 ligne...

on tombe au commentaire qui sont dans la basse de donnée (Feuil3 ... nom BD1) de L (commentaire 1) et M (commentaire 2) qui eu aussi se retoure sur la feuil1 (bilan) de A20 à A33 avec le dates qui lui sont ratacher.


01-janv 2012 de A20 à B20 les infos sont dans Feuil3 (BD1) de L à M
01-janv 2012 de A21 à B21
02-janv 2012 de A22 à B22
02-janv 2012 de A23 à B23
03-janv 2012 de A24 à B24
03-janv 2012 de A25 à B25

ainsi de suite jusqu'a


07-janv 2012 de A32 à B32
07-janv 2012 de A33 à B33

eux il sont en double cars il peux y avoir 2 commantaires ... voir base de donnée (feuil3 .. nom BD1) L & M

j'espère ne rien avoir oublier ....

si vous pouvez m'aider a faire se code avec moi ... indiquer moi le bon chemin

merci..
 

Pièces jointes

  • Classeur1.xlsm
    80.2 KB · Affichages: 69
  • Classeur1.xlsm
    80.2 KB · Affichages: 62
  • Classeur1.xlsm
    80.2 KB · Affichages: 74
Dernière édition:

david84

XLDnaute Barbatruc
Re : Besoin d'aide pour faire mon bilan

Re, bonjour Robert,
Comme je n'ai pas envie de te faire le boulot mais plutôt que tu comprennes un peu mieux, je t'ai fait une des 2 macros d'extraction des données en la commentant.
A toi d'adapter pour la seconde :
Code:
Sub Extraction()
Dim DerLig As Long, DateDebut As Date, DateFin As Date, PremLig As Byte
Application.ScreenUpdating = False 'désactive l'actualisation de l'écran
Application.EnableEvents = False 'désactive les événements
With Worksheets("Bilan") 'on travaille dans la feuille Bilan
    .Range("A10:M16").ClearContents 'on efface les valeur du tableau
    PremLig = .Range("A1").End(xlDown).Row + 1 'on définit la permière ligne
    DateDebut = .Range("E7").Value 'on définit la date de début
    DateFin = .Range("H7").Value 'on définit la date de fin
End With
With Worksheets("BD1") 'on travaille dans la feuille BD1
    DerLig = .Range("A" & Rows.Count).End(xlUp).Row 'on définit la dernière ligne non vide de la colonne A

    For i = 2 To DerLig 'on boucle sur toutes les lignes non vides
        If .Cells(i, 1).Value >= DateDebut And .Cells(i, 1).Value <= DateFin Then 'on compare la valeur en colA aux dates de début et de fin
        .Range(.Cells(i, 1), .Cells(i, 11)).Copy Destination:=Worksheets("Bilan").Cells(PremLig, 1) 'on copie les lignes répondant aux ccritères dans la feuille Bilan
        PremLig = PremLig + 1 'on réactualise la 1ère ligne vide de la plage A10:M16
        End If
    Next i
    
Application.ScreenUpdating = True 'réactive l'actualisation de l'écran
Application.EnableEvents = True 'réactive les événements
End With
End Sub

Concernant ton calendrier, je n'ai pas su distinguer les 2 (choisir des noms comme calendrier et calendrier1, c'est vraiment ne pas se faciliter la tâche !).
Tu as proposé quelque chose dans ton dernier message : creuse cette piste par toi-même et reviens-nous avec une proposition à adapter si tu n'y arrives pas.
A+
 

Magzonex

XLDnaute Junior
Re : Besoin d'aide pour faire mon bilan

Allo David

non ses bien correcte de me laisser travailler

alors voici mes questions

.Range("A10:M16").ClearContents 'on efface les valeur du tableau

je ne veux pas effacer jusqu'a M16 cars la tu éfface mes formules, vue que les données sont jusqu'a K16 alors j'ai changer pour:

.Range("A10:K16").ClearContents 'on efface les valeur du tableau

dans la feuil Bilan L,M,N et P vont s'ajuster tout seul.

Dans cette ligne tu indique la première ligne du bilan...

PremLig = .Range("A1").End(xlDown).Row + 1 'on définit la permière ligne

a moin que je me trompe mes sa devrais être A10 la première ligne sur mon tableau Bilan

PremLig = .Range("A10").End(xlDown).Row + 1 'on définit la permière ligne

Dans cette ligne il m'indique que le "i" est une variable non défini

For i = 2 To DerLig 'on boucle sur toutes les lignes non vides
If .Cells(i, 1).Value >= DateDebut And .Cells(i, 1).Value <= DateFin Then 'on compare la valeur en colA aux dates de début et de fin

pourquois ?????

on avance .. merci David .. mais encore besoin de ton aide qui mais très précieuse.
 
Dernière édition:

david84

XLDnaute Barbatruc
Re : Besoin d'aide pour faire mon bilan

Re
je ne veux pas effacer jusqu'a M16 cars la tu éfface mes formules, vue que les données sont jusqu'a K16 alors j'ai changer pour:

.Range("A10:K16").ClearContents 'on efface les valeur du tableau
OK

PremLig = .Range("A1").End(xlDown).Row + 1 'on définit la permière ligne
NON
cette partie du code te sélectionne la 1ère cellule vide de la zone située après "A9" :
.Range("A1").End(xlDown).Row
part de A1 et s’arrête à la 1 ère cellule non vide qu'elle trouve, soit A9 (Date).
Le +1 permet de descendre d'une cellule, donc la 1ère cellule vide (A10) de ta zone A10:K16
Pour plus de précision , regarde ici sur le site de JB

Dans cette ligne il m'indique que le "i" est une variable non défini
EXACTE
C'est un oubli de ma part car je n'ai pas déclaré la variable i et tu dois être en Option Explicit chez toi ce qui est bien mais cela n'apparaît pas sur ton fichier (sans quoi j'aurais été prévenu de mon oubli).

Donc, comme en Option Explicit tu te dois de déclarer toutes tes variables, il te signale simplement que la variable i n'est pas déclarée.

Remplace la 1ère ligne du code par
Dim DerLig As Long, DateDebut As Date, DateFin As Date, PremLig As Byte, i as As Long
et cela devrait fonctionner.
A+
 

Magzonex

XLDnaute Junior
Re : Besoin d'aide pour faire mon bilan

Allo

j'ai fais se que tu m'As dit ... et j'ai plusieur petit problème...

Remplace la 1ère ligne du code par

Dim DerLig As Long, DateDebut As Date, DateFin As Date, PremLig As Byte, i as As Long

je sais pas si c'était une attrape mais tu as écrit (, i as As long ) hahahaha facile a corriger.

a ma grande surprise sa ne fonctionne pas avec les dates ... en E7 et H7 ????? si je prend du 04 janv 2012 au 10 janv 2012 rien ne se passe ... si je choisi 10 janv 2012 au 14 janv 2012 ... il m'inscrit toute les date de ma base de donnée .. sois du 4 janv 2012 au 10 janv 2012 ....

une autre chose de bizarre ...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, [E7:H10]) Is Nothing Then Calendrier.Show
End Sub

le Calendrier est suposser de s'ouvrire juste dans la cellule E7 et H7 .. mais si je clique sur plusieur cellule genre .. F8,F9,E8,E9 et j'en passe le calendrier s'ouvre .... bizarre ...

et j'ai suprimer le Calendrier1 que tu n'amais pas .. il était juste la pour le test.
alors que se passe t'il ....

j'aimerais bien comprendre avant d'alle plus loin dans l'affichage des commentaire...

merci encore a toi david
 

Pièces jointes

  • Classeur1.xlsm
    80.5 KB · Affichages: 64
  • Classeur1.xlsm
    80.5 KB · Affichages: 71
  • Classeur1.xlsm
    80.5 KB · Affichages: 69

david84

XLDnaute Barbatruc
Re : Besoin d'aide pour faire mon bilan

Re
a ma grande surprise sa ne fonctionne pas avec les dates ... en E7 et H7 ????? si je prend du 04 janv 2012 au 10 janv 2012 rien ne se passe ... si je choisi 10 janv 2012 au 14 janv 2012 ... il m'inscrit toute les date de ma base de donnée .. sois du 4 janv 2012 au 10 janv 2012 ....
chez moi pas de problème. Je t'ai inclus le code dans ton fichier dans un module standard et non dans la feuil1.

e Calendrier est suposser de s'ouvrire juste dans la cellule E7 et H7 .. mais si je clique sur plusieur cellule genre .. F8,F9,E8,E9 et j'en passe le calendrier s'ouvre .... bizarre ...
Mais c'est normal, regarde ton code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, [E7:H10]) Is Nothing Then Calendrier.Show
End Sub
Modifie le en plaçant les bonnes plages et cela ne devrait plus arriver.
A+
 

Pièces jointes

  • MAGZONEX.xls
    145 KB · Affichages: 54
  • MAGZONEX.xls
    145 KB · Affichages: 55
  • MAGZONEX.xls
    145 KB · Affichages: 54

Magzonex

XLDnaute Junior
Re : Besoin d'aide pour faire mon bilan

Allo

bon en regardent sa de plus près dans mon Calendrier j'ai ajuster le format de Date pour qu'il sois identique a ma base de donnée .. et ça marche.

Private Sub Calendar1_Click()
ActiveCell = Format(Calendar1, " DD mmm YY")
Unload Me
End Sub

Changer pour vue que dans la base de données ses 04-01-2012

Private Sub Calendar1_Click()
ActiveCell = Format(Calendar1, " DD mm YYYY")
Unload Me
End Sub

reste juste a voir pourquois le Calendrier s'ouvre dans d'autre cellule...

merci sa avance...
 

Magzonex

XLDnaute Junior
Re : Besoin d'aide pour faire mon bilan

Allo David

Good Merci ... pour tant j'ai passer dessus plusieur fois et j'avais pas remarquer mon erreur H10 ..grrrr H7 la tout fonctionne... les date les infos ...plus que une chose avant d'ajouter mes commentaire dans les autre cellules

1 - est t'il possible que l'osrque le résultat s'affiche qu'il n'éfface pas les bordures .... dans mon tableau ...

ses surement lui qui cause ça:

.Range("A10:K16").ClearContents 'on efface les valeur du tableau

merci
 

david84

XLDnaute Barbatruc
Re : Besoin d'aide pour faire mon bilan

Re
Sais-tu te servir de l'enregistreur de macros ?
Si c'est non c'est une bonne occasion de commencer.

Tu vas dans l'onglet développeur=>enregistrer une macro=> OK.
Copie la plage du tableau que tu veux coller dans la feuille Bilan, va dans la feuille Bilan et copie-la où tu veux en faisant un collage spécial valeur (ce type de collage te permet de ne coller que les valeurs en gardant le format d'origine de la plage où les valeurs sont collées.
Sélectionne une cellule en dehors de la plage puis arrête l'enregistreur.

Va ensuite dans l'éditeur VBA et regarde le code qui y est marqué.

L'enregistreur de macros te donne donc la syntaxe te permettant de faire cette procédure.
Sélectionne la partie du code qui t'intéresse et place-là au bon endroit en l'adaptant à ton code.
Si tu ne t'en sort pas reviens avec le code produit par l'enregistreur pour t'aider à comprendre ce qu'il convient de faire.
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise