Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données reportées

cibleo

XLDnaute Impliqué
Bonjour à tous,

Grâce à vos interventions sur le forum, je développe un petit programme VBA qui me permet de reporter des données issues de 12 feuilles nommées ainsi (Encais Janv08, Encais Fév08 etc... jusqu'à Décembre 08) vers une feuille nommée "recherche" à l'aide d'un mot-clé saisi dans une inputbox.

Ce programme s'exécute maintenant très bien mais je souhaiterais aujourd'hui améliorer la présentation de mon tableau (feuille "recherche") et la lisibilité des données reportées.

Je développe.

- Concernant l'en-tête (déjà créé en partie centrale)
* Formater en police Verdana Taille 16 Couleur automatique (noire)

- Concernant le pied de page (non créé)
* Insérer dans la partie centrale la mention "Edité le (jour d'aujourd'hui avec heure) écrite en toute lettre. Ex : Edité le jeudi 06 mars 2008 à 16 h 00
* Insérer dans la partie gauche la mention "Encaissement 2008"
* Insérer dans la partie droite les pages numérotées comme ceci : page 1/3, page 2/3 etc... Tout cela (pied de page) dans un format Verdana taille 10 Couleur automatique (noire)
J'espère que toutes ces mentions ne vont pas se chevaucher !
Quelles instructions dois-je rajouter à mon code ?

- Concernant les données reportées dans les colonnes A à G de ma feuille "recherche", un petit problème se pose.
* Ma feuille "recherche" subit la MFC des feuilles traitées (Encais Janv08 etc...). c'est à dire que mes données reportées apparaissent avec un motif bleu (ce que je ne souhaite pas).

Comment ne pas appliquer cette MFC créée dans les feuilles traitées et qui se reporte en même temps que les données ?
Faut-il rajouter une instruction à mon code ?

*D'autre part, figurent en colonne A de la feuille "recherche" les dates reportées que j'aimerais mieux discerner en appliquant un trait "gras par exemple" à chaque changement de mois dans les dates. Ce trait s'appliquerait automatiquement sur la ligne entière de la colonne A à G.
*Autre point, j'aimerais faire la somme automatique à la fin des colonnes E, F et G où sont reportés les montants des feuilles traitées, le montant total de chaque colonne venant s'insérer en dessous de la dernière ligne reportée.

Comment dois-je modifier le code ?

*Dernier point enfin, peut-être le plus difficile à résoudre.
Explication : je saisis dans l'inputbox le mot-clé de cette façon : *cpam* soit avec 2 caractères génériques, ce qui me permet de reporter le libellé inscrit dans la colonne D de mes feuilles traitées comme ceci, exemple : Remboursement cpam du département X.
Ma question est la suivante : serait-il possible d'isoler le terme "cpam" dans le libellé reporté en colonne C de la feuille "recherche" en lui appliquant une couleur de police "rouge" par exemple.
Exemple du libellé reporté : "remboursement" en noir, "cpam" en rouge, "du département X" en noir

Voilà,mes explications ont été longues mais j'espère avoir été précis dans mes demandes;

Merci d'avance de votre aide, je débute en VBA.

Ci-joint le code.

Sub cherche(achercher)
ligne = 2
For n = 1 To Sheets.Count
If Sheets(n).Name Like "Encais*" Then
Set c = Sheets(n).Range("D:D").Find(achercher, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Sheets(n).Range("B" & c.Row & ":" & "H" & c.Row).Copy Destination:=Sheets("Recherche").Cells(ligne, 1)
ligne = ligne + 1
Set c = Sheets(n).Cells.FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End If
Next n
End Sub

Sub recherche()
mot = InputBox("Veuillez entrer le mot recherché.", "Encaissement 2008")
If mot = "" Then Exit Sub
Sheets("Recherche").Range("A2:i" & Range("A65536").End(xlUp).Row + 1).ClearContents
Sheets("Recherche").PageSetup.CenterHeader = " Mot-clé saisi : " & mot
Call cherche(mot)
End Sub
 
C

Compte Supprimé 979

Guest
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Salut Cibleo,

Tu ne pourrais pas nous donner ton fichier, pour travailler dessus !?

A+
 

cibleo

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Bonjour BrunoM45,

Je ne peux pas envoyer le fichier il fait 63 ko, il n'y a pourtant que 2 feuilles et elles sont vides de toutes données !!!

C'est la première fois que j'envoie un fichier zippé, j'ai cliqué droit envoyer vers dossier compressé !!

J'ai pourtant bien compris la démarche pour l'envoyer.

Merci pour ton aide.
 

jeanpierre

Nous a quitté
Repose en paix
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Bonsoir,

Ce n'est pas possible, ton fichier retient quelques mémoires antérieures....

Laisses quelques donnée surtout, ensuite et au délà vers droite, suppriimes toutes les colonnes vides.... jusqu'a IV.

Tu fais pareil pour les lignes jusqu'à 65536... Tu enregistres, il devrait reprendre un poids normal...

Sinon, tu copies ta ou tes plages (pas les feuilles) sur un nouveau classeur neuf et vierge, avec ta macro... (Macro que tu peux transporter d'un classeur à l'autre dans VBE, par un simple Glisser/Déposer... Tu Zippes et ce doit être bon....

A te lire.
 

cibleo

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Re-bonjour à tous,

J'envoie mon fichier joint,

j'espère que ça va marcher !
 

Pièces jointes

  • Encaissement et caisse 20088.zip
    38 KB · Affichages: 56
  • Encaissement et caisse 20088.zip
    38 KB · Affichages: 49
  • Encaissement et caisse 20088.zip
    38 KB · Affichages: 51

jeanpierre

Nous a quitté
Repose en paix
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Re,

Curieusement, ton fichier avec winrar s'ouvre bien....

Seulement, il est vide de données..... On fait quoi pour la recherche...

Je t'ai dit : "Laisses quelques donnée surtout", là c'est le vide.... pommé un peu dans ce cas...
 

cibleo

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Re-bonsoir Jeanpierre,

J'ai rajouté quelques données dans les feuilles "Encais".

Les feuilles "Caisse" n'ont rien à voir avec ma demande.

Merci pour ton aide.
 

Pièces jointes

  • Encaissement et caisse 20088.zip
    37.4 KB · Affichages: 37
  • Encaissement et caisse 20088.zip
    37.4 KB · Affichages: 40
  • Encaissement et caisse 20088.zip
    37.4 KB · Affichages: 39

Excel_lent

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

bonsoir à tous.
- Concernant les données reportées dans les colonnes A à G de ma feuille "recherche", un petit problème se pose.
* Ma feuille "recherche" subit la MFC des feuilles traitées (Encais Janv08 etc...). c'est à dire que mes données reportées apparaissent avec un motif bleu (ce que je ne souhaite pas).

Comment ne pas appliquer cette MFC créée dans les feuilles traitées et qui se reporte en même temps que les données ?
Faut-il rajouter une instruction à mon code ?

*Comment dois-je modifier le code ?
Range(---).Copy .... recopie même les formats.
Si tu ne les veux pas, passe plutôt par
Code:
...
 Do
         For col = 2 To 8
           Sheets("Recherche").Cells(ligne, col - 1) = Sheets(n).Cells(c.Row, col)
         Next
         ligne = ligne + 1
...
 

cibleo

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Bonsoir Excel lent,

j'ai fait un essai
la Mfc n'est plus appliquée OK
Je ne comprends pas le Range copy : je débute en VBA, où le placer dans le code ?

sinon avec le bout de ton code çà se reporte bien, mais à partir de la ligne 17 les lignes sont reportées mais sans aucun format !

il faut que je place le Range copy ?
Je veux bien reporter le format initial (des feuilles nommées Encais..)

Merci déjà de ta réponse.
 

cibleo

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Re-Bonsoir Excel lent,

J'ai dit une annerie mon tableau est formaté jusqu'à la ligne 17 !

L'effet produit est normal.

Mais j'aimerais bien qu'il me reporte les données avec le format initial, si j'ai bien compris il faut que je mette le Range copy.

désolé mais je suis en plein apprentissage !!!

Merci pour vos réponses.
 

Excel_lent

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Re,

Si tu as déjà fait une recherche avec la ligne de
Code:
[FONT=&quot][FONT=Verdana]Sheets(n).Range("B" & c.Row & ":" & "H" & c.Row).Copy Destination:=Sheets("Recherche").Cells(ligne, 1)[/FONT]
 [/FONT]
tu as recopié les formats.

Tu peux simplifier cette ligne ainsi :
Code:
Sheets(n).Range("B" & c.Row & ":" & "H" & c.Row).Copy Sheets("Recherche").Cells(ligne, 1)
.
Il faut savoir aussi que si la plage source contient des formules, celles-ci seront aussi copiées (et non les valeurs calculées).

Retour à ta procédure :
quand tu lances une recherche, la ligne
Code:
Sheets("Recherche").Range("A2:i" & Range("A65536").End(xlUp).Row + 1).ClearContents
vide les cellules de leur contenu, mais conserve leur format !

Donc changer, en cours de route, le code ainsi :
Code:
For col = 2 To 8   
  Sheets("Recherche").Cells(ligne, col - 1) = Sheets(n).Cells(c.Row, col)
Next
ne permettra pas d’ignorer les formats de couleur (entre autres) de la plage d'arrivée.
Il faut les effacer ou les remplacer avant de lancer,une première fois, la macro.

A toi de trancher : copie or not copie les formats de couleur.
 

Excel_lent

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Bonjour Cibleo et à tous, sans oublier les autres.

Avec un autre type de recherche (par partie : lettre, mot ...).
Voir aussi la mise en page pour l'impression.
Revoir aussi les formats de la page "Recherche".

et bon WE.
 

Pièces jointes

  • Rechercher E.zip
    18 KB · Affichages: 43

cibleo

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Bonjour Excel lent,

C'est vraiment hyper sympa, tu as réalisé un travail remarquable, je ne sais pas comment te remercier.

Le language Vba est vraiment du chinois pour moi, je me débrouille pas mal avec Excel et ai déjà réalisé grâce aux précieux conseils de ce forum quelques applications sympas pour mon entreprise (artisan).
Mais avec le Vba, on peut vraiment améliorer la productivité des petites entreprises avec de petites applications toutes simples.

Maintenant, je vais m'attacher à peaufiner les derniers réglages : je pense effectuer des MFC directement dans la feuille "recherche" pour plus de clarté.
(appliquer une bordure sur la ligne entière à chaque changement de mois dans la colonne Dates), çà sera plus simple.

Dernièr point à améliorer; comment faire la somme automatique des colonnes E, F et G à la fin des valeurs reportées (format monétaire).

Si je devais donner un conseil aux néophytes comme moi, c'est bête à dire, c'est qu'il faut vraiment commencé par le début : comprendre l'interface VBA et son vocabulaire et ne pas se jeter à corps perdu dans l'écriture d'un code, sinon on abandonne très vite.
Mais bon, avant de me lancer, je vais repotasser mes bouquins et apprendre à décrypter les solutions proposées sur ce forum c'est çà l'apprentissage.

Merci mille fois Excel lent et bon week-end à tous.
 

Excel_lent

XLDnaute Impliqué
Re : Code VBA : déterminer Apparence de l'en-tête, du pied de page, des données repor

Bonsoir Cibleo et ...

Une autre mouture avec les sommes.

Si tu as besoin d'autres explications, n'hésite pas !

Bon dimanche à tous.
 

Pièces jointes

  • Rechercher E1.zip
    18.4 KB · Affichages: 54
  • Rechercher E1.zip
    18.4 KB · Affichages: 48
  • Rechercher E1.zip
    18.4 KB · Affichages: 51

Discussions similaires

Réponses
7
Affichages
328
Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
312 111
Messages
2 085 400
Membres
102 883
dernier inscrit
jameseyz