Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel

Advertisement

Réponse
 
LinkBack Outils de la discussion
Vieux 19/09/2006, 01h36   #1 (permalink)
XLDnaute Nouveau
 
Date d'inscription: septembre 2005
Messages: 37
Par défaut Pb sur macro nouveau feuillet

bonsoir,
j'ai du mal avec une macro, soumise par un collegue.
Il s'agit de creer un nouveau feuillet, en effaçant les données saisies, ( jusque là je sais faire...), et en renommant la nouvelle feuille à la date du lendemain, sauf si vendredi on renomme à la date du lundi. Et là on a pas abouti, et surement un peu compliqué les choses...
Est ce qu'un genereux contributeur aurait une idée, plus simple et plus efficace que celles que nous avons testées ?
Merci d'avance
Fichiers attachés
Type de fichier : zip tableau previsionnel de tresorerie.zip (10,6 Ko, 14 affichages)
Lucho07 est déconnecté   Réponse avec citation
ANNONCES
Vieux 19/09/2006, 03h02   #2 (permalink)
XLDnaute Occasionel
 
Date d'inscription: septembre 2006
Localisation: Bordeaux
Messages: 237
Par défaut Re : Pb sur macro nouveau feuillet

Bonsoir Lucho07,

Il y a une erreur dans la procédure "Nouveau".
J'ai remplacé :
'on efface le bouton de la feuille precedente
feuille.Shapes("Button 2").Delete
par :
'on efface le bouton de la feuille precedente
feuille.Shapes("Button 1").Delete

Après, je ne vois pas trop ce qu'il faut faire.
Peux-tu donner un exemple de nom d'onglet que tu souhaites ?

Merci
Bonne nuit
@+
lacorse33 est déconnecté   Réponse avec citation
Vieux 19/09/2006, 08h35   #3 (permalink)
XLDnaute Barbatruc
 
Avatar de Pierrot93
 
Date d'inscription: août 2006
Messages: 7 503
Par défaut Re : Pb sur macro nouveau feuillet

Bonjour Lucho, Lacorse, le forum

Pourquoi ne pas utiliser l'instruction "select case" en lieu et place des differets "if", a mon avis mais ca n'engage que moi cela faciliterait la mise au point de ton code, ci dessous un exemple :

Code:
Select Case Numjour
    Case 6
        .Range("D3") = "=today() + 3"
        .Name = "Journee du lundi " & compteur
    Case 5
    Case 4
    Case 3
    Case 2
    Case Else
End Select
Bonne journée
@+
__________________
Pierrot

On se trouve toujours suffisamment intelligent, vu que c'est avec ce que l'on a qu'on juge !!!
Pierrot93 est déconnecté   Réponse avec citation
Vieux 19/09/2006, 12h02   #4 (permalink)
XLDnaute Barbatruc
 
Avatar de pierrejean
 
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Messages: 8 144
Par défaut Re : Pb sur macro nouveau feuillet

bonjour à tous

une solution

vois si elle te convient

A+
Fichiers attachés
Type de fichier : xls tableau previsionnel de tresorerie.xls (40,0 Ko, 6 affichages)
pierrejean est déconnecté   Réponse avec citation
Vieux 19/09/2006, 12h56   #5 (permalink)
XLDnaute Accro
 
Avatar de Gorfael
 
Date d'inscription: avril 2006
Localisation: Basse Goulaine
Messages: 1 545
Talking Re : Pb sur macro nouveau feuillet

Citation:
Envoyé par Lucho07
bonsoir,
j'ai du mal avec une macro, soumise par un collegue.
Il s'agit de creer un nouveau feuillet, en effaçant les données saisies, ( jusque là je sais faire...), et en renommant la nouvelle feuille à la date du lendemain, sauf si vendredi on renomme à la date du lundi. Et là on a pas abouti, et surement un peu compliqué les choses...
Est ce qu'un genereux contributeur aurait une idée, plus simple et plus efficace que celles que nous avons testées ?
Merci d'avance
Salut à tous
la macro du fichier que t'as mis en exemple, un peu modifiée :
Code:
Sub nouveau()
'
' nouveau Macro
' Macro enregistrée le 18/09/2006 par JULLIE franck
'

'declaration des variables
Dim feuille As Worksheet
Dim Numjour As Integer
Dim compteur As Integer
Dim NomDate As Date


'on affecte la valeur du jour de la semaine à la date d'aujourd'hui dans la variable Num
Numjour = Weekday(Now())
'copie de la feuille active
ActiveSheet.Copy after:=Sheets(Sheets.Count)


'modification de la nouvelle feuille
    With ActiveSheet
        'on affecte la feuille precedente a la variable feuille
        Set feuille = Sheets(Sheets(.Index - 1).Name)
        compteur = feuille.Range("f2") + 1

        'definition  de formule pour la date du jour
        NomDate = IIf(Weekday(Date, vbMonday) > 4, _
                         Date + 4 - Weekday(Date, vbFriday), Date + 1)
        .Range("D3") = NomDate
        .Name = "Journée du " & Format(NomDate, "dddd") & " " & Day(NomDate)
        'on efface les cellules
        .Range("D7:D8,D11:D12,D15:D18,D21:D23,D28").ClearContents
        .Range("F7:F9,F11:F13,F15:F18,F21:F24").ClearContents
        .Range("B30:F38,A31:A38").ClearContents
        
        'on met le compteur a jour
        .Range("f2") = compteur
        'on efface le bouton de la feuille precedente
        feuille.Shapes("Button 1").Delete
    End With

End Sub
P'tite question :
si tu mets le titre du jour par macro (D3), pourquoi mettre une formule ?
Si tu n'eaffaces pas directement ta feuille, c'est pour garder une "historique"
donc, plutôt que mettre une formule, fige la date
Sinon, en cas d'impression, va pas falloir se tromper entre date sur la feuille, et date sur l'onglet (qui ne figure même pas dans la mise en page
Si t'imprimes un mois, t'as pas interet à faire tomber le paquet

A+
Gorfael est déconnecté   Réponse avec citation
Vieux 19/09/2006, 13h50   #6 (permalink)
XLDnaute Barbatruc
 
Avatar de pierrejean
 
Date d'inscription: janvier 2006
Localisation: 69400 LIMAS
Messages: 8 144
Par défaut Re : Pb sur macro nouveau feuillet

salut à tous

ma version corrigée (je m'etais un peu melangé les pieds dans les n° de jour)

Code:
 
Dim MyWeek
MyWeek = Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche")
Dim Numjour As Integer
Dim compteur As Integer
compteur = ActiveSheet.Range("f2") + 1
' numero dulendemain
Numjour = WeekDay(Date + 1)
' si lendemain samedi ou dimanche lendemain lundi
If Numjour = 7 Or Numjour = 1 Then Numjour = 2
ActiveSheet.Copy after:=Sheets(Sheets.Count)
' renomme la nouvelle feuille
Sheets(Sheets.Count).Name = "journée du " & MyWeek(Numjour - 2) & " " & compteur
'on efface les cellules
With Sheets(Sheets.Count)
        .Range("D7:D8,D11:D12,D15:D18,D21:D23,D28").ClearContents
        .Range("F7:F9,F11:F13,F15:F18,F21:F24").ClearContents
        .Range("B30:F38,A31:A38").ClearContents
        
        'on met le compteur a jour
        .Range("f2") = compteur
        'on efface le bouton de la feuille precedente
        .Shapes("Button 1").Delete
End With
End Sub
mêmes remarques que Gorfael (que je salue particulierement)
pierrejean est déconnecté   Réponse avec citation
Vieux 20/09/2006, 10h24   #7 (permalink)
XLDnaute Nouveau
 
Date d'inscription: septembre 2005
Messages: 37
Par défaut Re : Pb sur macro nouveau feuillet

bonjour et merci à tous,
je n'avais effectivement pas fait attention à la date, qui n'est pas figée.
La modif m'interesse, puisqu'effectivement les feuillets sont tous conservés comme archive.
Merci encore je vais maintenant, essayer de mettre tt ça en application.
bonne journée à tous
Lucho07 est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Nouveau classeur+ macro Maxime Forum Excel 6 26/07/2006 13h29
sauvegarde automatique d'un feuillet pilcar Forum Excel 2 15/01/2006 23h25
créer un feuillet "récapitulatif" Lucho07 Forum Excel 10 13/01/2006 19h27
reference un un feuillet absent babasse Forum Excel 1 21/04/2005 17h46
recuperer des Données d'un feuillet sur un autre sous conditions nikko Forum Excel Downloads - Archives 8 24/09/2004 10h30


Fuseau horaire GMT +2. Il est actuellement 22h31.


(C) 2006 Excel Downloads