VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

Scampyrate

XLDnaute Nouveau
Bonjour,

J'utilise Excel 2003, je voudrais utiliser une macro pour mon fichier mais je ne sais pas m'exprimer en language vba.

La Feuil1 de mon fichier est un tableau récapitulant la liste des sites où il y aura une intervention dans l'année :
COLONNE B = Nom du client
COLONNE C = Lieu de l'intervention
COLONNE D = JANVIER
COLONNE E = FEVRIER
...

Les sites concernés par une intervention pendant un mois donné sont indiqués d'une croix (installé manuellement).

La Feuil2 de mon fichier représente un modèle de Bon d'Intervention (BI).

Dans l'exemple du mois de Janvier il y a trois sites concernés par une intervention, j'aimerais donc qu'il y ait 3 feuilles (et pas de classeur) qui se crées (copiant les éléments de ma Feuil2 - le modèle BI) avec le nom du client et le lieu insérés automatiquement - 1 feuille (copie de BI) par client concerné par inter. Et ainsi de suite si il y a 4 sites concernés en Fevrier création de 4 feuilles copie BI. Et ainsi de suite tous les mois.

La macro doit savoir sur quelle colonne chercher les infos (JANVIER, FEVRIER...) en se référant à la date du jour et/ou en l'indiquant manuellement.

Ce que je souhaite, c'est que quand on ouvre le fichier, les BI soient créés automatiquement et que l'on ai plus qu'à imprimer sans ajouter quoi que ce soit ou juste la date dans une fênetre de dialogue. Puis quand on ferme le fichier, que ces feuilles nouvellement créées soit supprimer automatiquement (pour ne pas se retrouver avec 100 Feuilles BI à la fin de l'année et pour qu'on si retrouve).

Pensez-vous que c'est possible ? Ai-je été assez clair ?

J'ai joins une copie de mon fichier

Merci d'avance
 

Pièces jointes

  • PLANNING.xls
    46 KB · Affichages: 61
  • PLANNING.xls
    46 KB · Affichages: 64
  • PLANNING.xls
    46 KB · Affichages: 63

CBernardT

XLDnaute Barbatruc
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

Bonjour Scampyrate,

Projet d'automatisation intéressant, mais un petit détail m'intrigue :

En janvier 3 interventions, Ok.

Tu demandes la création de trois BI, Ok.

Hors dans le modèle de BI, il y a 4 lieux d'interventions possibles, pas Ok ?
 

Scampyrate

XLDnaute Nouveau
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

Bonjour CBernardT,
Merci de consacrer un peu de ton temps pour ma demande.

Oui il y a 4 lieux d'interventions possibles dans le BI modèle (oubli de ma part lors de la dernière création de BI, j'ai juste supprimer le texte). J'efface ça et je renvoi le doc.

Cordialement,
Scampyrate
 

Pièces jointes

  • PLANNING.xls
    44.5 KB · Affichages: 68
  • PLANNING.xls
    44.5 KB · Affichages: 63
  • PLANNING.xls
    44.5 KB · Affichages: 63
Dernière édition:

CBernardT

XLDnaute Barbatruc
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

RE,

L'automatisation s'effectue avec les deux macros Private Sub Workbook_Open() et Private Sub Workbook_BeforeClose(Cancel As Boolean) placées dans le module ThisWorkbook.

La première, lors de l'ouverture, recherche le mois de la date du jour et crée les bulletins d'interventions qui y correspondent. A noter la fonction NumMois qui permet de lier le mois en lettres et le mois en nombre de la fonction Month(Date)

La seconde, lors la fermeture par les croix, supprime toutes les feuilles autres que "PLANNING" et "BON INTERVENTION" et enregistre le classeur.

Le travail actuel s'effectue sur le mois de novembre ;)
 

Pièces jointes

  • ScampyratePlanningV1.zip
    19.5 KB · Affichages: 43
  • ScampyratePlanningV1.zip
    19.5 KB · Affichages: 44
  • ScampyratePlanningV1.zip
    19.5 KB · Affichages: 42
Dernière édition:

Scampyrate

XLDnaute Nouveau
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

Re CBernardT,
Ouah merci beaucoup c'est super. Tu as fais ça tellement rapidement... je m'attendais à un truc super complexe de 15 000 lignes. Il faut vraiment que j'apprenne à faire ça.

Juste une petite question (je ne voudrais pas te déranger) :

- Quel est le code pour avoir une fênetre de dialogue qui demande confirmation du mois demandé pour les BI ?
Par exemple si on est le 27 novembre et que l'on veut les BI du mois de Décembre, le fichier ne sortira que ceux du mois de novembre.

Cordialement,
Scamp'
 

CBernardT

XLDnaute Barbatruc
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

RE,

A voir si cela correspond :

1- Le dispositif précédent est toujours en place.

2- Un bouton dans la feuille "PLANNING" permet de supprimer les bulletins d'interventions précédents et d'ouvrir une fenêtre de choix du mois à afficher.

3- Le choix effectué, les bulletins d'interventions du mois choisi sont affichés.
 

Pièces jointes

  • ScampyratePlanningV1.zip
    26.3 KB · Affichages: 37
  • ScampyratePlanningV1.zip
    26.3 KB · Affichages: 42
  • ScampyratePlanningV1.zip
    26.3 KB · Affichages: 43
Dernière édition:

Scampyrate

XLDnaute Nouveau
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

Bonjour CBernardT,

C'est encore moi ! Je te sollicite encore, j'espère que ça ne te dérange pas ?

Après avoir modifié le fichier en ajoutant tous mes clients, j'ai constaté un petit soucis.

En fait j'ai plusieurs fois le même client qui apparraît dans le tableau "Planning" (mais avec un lieu d'intervention différent) et les deux sites ont besoin d'une intervention au même mois (comme par hasard). Et là, la macro beug car elle ne peut pas créer 2 onglets avec le même nom (puisqu'elle copie le nom qui est indiqué dans le tableau et que là c'est le même).

As-tu (encore une fois) une solution à me proposer ? J'ai pensé à un truc : mettre 2 noms différents "Société X 1" et "Société X 2" mais sans que le 1 et le 2 se voit sur le BI (par exemple écrit en blanc sur "Planning") et donc avec une copie de Mise en forme le 1 et le 2 ne se verront pas sur le BI car ils seront également en blanc.

Qu'en penses-tu ? Est-ce faisable ?
As-tu une meilleure idée (surement plus simple) ?

Cordialement,

Scampyrate
 

Scampyrate

XLDnaute Nouveau
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

Bonjour CBernardT,
Merci d'avoir répondu aussi vite.

Après des tests j'ai constaté un problème quand on ouvre le fichier :
- Pour le mois de Novembre c'est OK : le nom du client et le lieu d'intervention apparaisse bien (puisqu'il n'y pas de doublons). Pour les autres mois ça doit être bon ;

-Pour le mois de Juin : le nom du client OK mais le lieu d'intervention n'apparaît pas.

Et je suppose que le lieu d'intervention n'apparaît pas dès qu'il y a le nom du client avec du texte effacé.

Y a t'il une solution ?

Merci d'avance pour ton aide précieuse

Cordialement,
Scampyrate
 

Scampyrate

XLDnaute Nouveau
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

Bonjour CBernardT,
Merci d'avoir répondu aussi vite.

Après des tests j'ai constaté un problème quand on ouvre le fichier :
- Pour le mois de Novembre c'est OK : le nom du client et le lieu d'intervention apparaisse bien (puisqu'il n'y pas de doublons). Pour les autres mois ça doit être bon ;

-Pour le mois de Juin : le nom du client OK mais le lieu d'intervention n'apparaît pas.

Et je suppose que le lieu d'intervention n'apparaît pas dès qu'il y a le nom du client avec du texte effacé.

Y a t'il une solution ?

Merci d'avance pour ton aide précieuse

Cordialement,
Scampyrate


Re CBernardT,

En fait je crois que j'ai réussi en tout cas ça fonctionne. Regarde :

Code:
Option Explicit
Public Critere As String
Sub InterventionsMois()
Dim m As Byte, i As Byte, Client As String
Application.ScreenUpdating = False
With Sheets("PLANNING")
For m = 4 To 15
If NumMois(CStr(.Cells(5, m))) = Critere Then
For i = 6 To 29 Step 3
If .Cells(i, m) = "x" Then
Sheets("BON INTERVENTION").Copy after:=Sheets(Sheets.Count)
With ActiveSheet
Client = Sheets("PLANNING").Cells(i, 2).Value
If Right(Client, 1) = "x" Then
.Name = Client
.Cells(15, 2) = Left(Client, Len(Client) - 3)
.Cells(21, 2) = Left(Client, Len(Client) - 3)
.Cells(17, 2) = Sheets("PLANNING").Cells(i, 3).Value
Else
.Name = Client
.Cells(15, 2) = Client
.Cells(17, 2) = Sheets("PLANNING").Cells(i, 3).Value
.Cells(21, 2) = Client
End If
End With
End If
Next i
End If
Next m
End With
Sheets("PLANNING").Activate
End Sub
Code:



J'ai juste ajouté ce qu'il y a en rouge et ça fonctionne. Je pense qu'à force de regarder ton travail j'ai compris des ptits trucs (A force de m'arracher les cheveux lol) !!!

Dans tous les cas, un GRAND MERCI à toi. Ca fonctionne super !

A bientôt CBernardT

Cordialement,
Scampyrate
 

CBernardT

XLDnaute Barbatruc
Re : VBA Ouvrir nvlle feuil id à précédent en changeant certains éléments

Bonsoir Scampyrate,

Je vois que le language VBA n'a plus de secret pour vous.;)

C'est exactement la ligne de code qu'il fallait ajouter et que j'ai oublié hier soir dans ma précipitation :eek:

A bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson