Lien Hypertexte à partir d'une date

RV37

XLDnaute Junior
Bonjour le Forum,

Je souhaite créer un fichier caisse avec archivage des tickets jour par jour.

Je pars de mon onglet "Mois" pour créer une feuille jour par jour soit pour mars 31 feuilles.

Dans l'onglet "Caisse", en cellule A1, j'ai la date du jour. Je souhaiterai avoir en C1 un lien hypertexte qui m'ouvre la feuille du jour concerné pour copier les tickets après impression.

Avez vous une idée ?? je n'arrive pas à créer ce lien.

Dans l'exemple joint j'ai laissé les 3 dernières feuilles des trois derniers jours du mois. A la date d'aujourd'hui, ce lien devrait m'emmener dans la feuille 40632 en cellule A1.

Merci pour votre aide.

RV37
 

Pièces jointes

  • caisse wagon.zip
    48.3 KB · Affichages: 55

supercrapaud

XLDnaute Occasionnel
Re : Lien Hypertexte à partir d'une date

Bonjour,

Peut-être une macro évènementielle du genre workbook_open qui ferait en sorte que dès que tu ouvres ton fichier, un lien hypertexte soit créé vers l'onglet en question. Ca me semble le plus simple. Par contre ça signifie que tu vas te retrouver avec près de 200 feuilles à la fin de l'année ? Ca risque d'être lourd à gérer je pense.
 

RV37

XLDnaute Junior
Re : Lien Hypertexte à partir d'une date

Bonjour supercrapaud, le forum,

Merci pour ton retour mais je peux mettre cette macro sous quelle forme ???

Pour le classeur, j'en créé un nouveau chaque mois, donc pas plus de 35 feuilles.

Merci

RV37
 

supercrapaud

XLDnaute Occasionnel
Re : Lien Hypertexte à partir d'une date

Voilà un début de piste mais je n'arrive pas à conclure je sais pas pourquoi ça bugge. Mais si quelqu'un d'autre peut nous éclairer ce serait cool.
 

Pièces jointes

  • caisse wagon.xls
    116.5 KB · Affichages: 71

RV37

XLDnaute Junior
Re : Lien Hypertexte à partir d'une date

Bonjour le Forum, Supercrapaud,

merci supercrapaud pour ta réponse mais comme tu le dis, cela n'aboutit pas, pourquoi ??

Quelqu'un aurait t il une idée ???

Bonne journée

RV37
 

supercrapaud

XLDnaute Occasionnel
Re : Lien Hypertexte à partir d'une date

Bonjour tout le monde. Je pense qu'il s'agit d'un problème lorsque je convertis la dare du jour en simple texte pour ensuite faire la recherche des onglets mais je ne sais pas pourquoi. J'espère que d'autres saueont car ça dépasse mes compétences.
 

job75

XLDnaute Barbatruc
Re : Lien Hypertexte à partir d'une date

Re,

Il me semble que vous voulez un lien hypertexte en C1.

J'utiliserai plutôt l'évènement Calculate de la feuille Caisse :

Code:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False 'désactive les évènements
With Me.[C1]
  .Formula = "=TODAY()"
  .NumberFormat = "0"
  .Hyperlinks.Add .Cells, "", .Value & "!A1"
End With
Application.EnableEvents = True
End Sub
On remarquera qu'il est impossible d'effacer C1 (car cela déclenche la macro).

Sauf évidemment si l'on désactive les macros (par exemple pour tester).

De plus, si le classeur est toujours ouvert, le lien hypertexte se met à jour à minuit *

Fichier joint.

* Edit : le lien ne se met pas à jour tout seul, il faut appuyer sur la touche F9...

A+
 

Pièces jointes

  • caisse wagon(1).xls
    126 KB · Affichages: 72
Dernière édition:

RV37

XLDnaute Junior
Re : Lien Hypertexte à partir d'une date

Bonjour le Forum, Supercrapaud, Job75,

Merci pour vos réponses à tous les deux mais cela ne répond pas exactement à ma demande.

Peut être que le lien hypertexte n'est pas la bonne solution. Ce que je souhaite c'est pouvoir atteindre la feuille du jour concerné pour copier les tickets du jour.

Quelqu'un aurait t il une idée ??

Bonne journée ensoleillée,

RV37
 

job75

XLDnaute Barbatruc
Re : Lien Hypertexte à partir d'une date

Bonjour RV37,

Merci pour vos réponses à tous les deux mais cela ne répond pas exactement à ma demande.

Mon post #10 si.

Mais bien sûr il faut que la feuille correspondant à la date du jour existe.

Le fichier que j'ai joint fonctionnait les jours 02/04/2011 03/04/2011 04/04/2011...

Pour aujourd'hui 07/04/2011, créez la feuille 40640 !

A+
 

RV37

XLDnaute Junior
Re : Lien Hypertexte à partir d'une date

Bonjour le Forum, Supercrapaud, Job75,

Avec votre aide je suis arrivé à contruire cette macro qui créée l'hyperlien en feuille caisse et créée la feuille pour la journée.

Private Sub Workbook_Open()
Sheets("Caisse").Activate
Range("C1").Delete
Application.EnableEvents = False 'désactive les évènements
With [C1]
.Formula = "=TODAY()"
.NumberFormat = "0"
.Hyperlinks.Add .Cells, "", .Value & "!A1"
End With
Application.EnableEvents = True
Sheets("Jour").Select
Sheets("Jour").Copy After:=Sheets(3)
Sheets(4).Name = ThisWorkbook.Sheets("Caisse").[C1].Value
Sheets("Caisse").Activate
Range("B2").Select

End Sub

Par contre si l'utilisateur ferme le dossier sur la même journée et le ré ouvre, cela plante car une seconde feuille portant le même nom veut se créer.

Comment puis je faire pour vérifer que la feuille n'existe pas et si elle existe annuler sa création ??


Merci pour votre aide


RV37
 

supercrapaud

XLDnaute Occasionnel
Re : Lien Hypertexte à partir d'une date

Bonjour le fil et le forum.

En fait quand on regarde, tu ajoutes une date dans ta cellule C1 que tu convertit en nombre puis tu copies ta feuille mère pour la dupliquer. C'est bien ça ? Je pense que tu devrais insérer un test en début de macro pour voir si ta feuille existe déjà du genre
dim nom as string
nom = sheets(caisse).range("c1")
for 1 = 1 to sheets.count
if sheets(i).name = nom then exit sub
next i
à placer juste avant le Application.EnableEvents = True. Pas testé mais ça devrait fonctionner.
 

RV37

XLDnaute Junior
Re : Lien Hypertexte à partir d'une date

Bonjour Le fil, Le Forum, Supercrapaud,

Merci pour ton retour, j'ai appliqué ta proposition ce qui donne une fois corrigé ceci:

Private Sub Workbook_Open()

Sheets("Caisse").Activate
Range("C1").Delete
Application.EnableEvents = False 'désactive les évènements
With [C1]
.Formula = "=TODAY()"
.NumberFormat = "0"
.Hyperlinks.Add .Cells, "", .Value & "!A1"
End With
Dim nom As String
nom = Sheets("caisse").[C1].Value
For i = 1 To Sheets.Count
If Sheets(i).Name = nom Then Exit Sub
Next i
Application.EnableEvents = True
Sheets("Jour").Select
Sheets("Jour").Copy After:=Sheets(3)
Sheets(4).Name = ThisWorkbook.Sheets("Caisse").[C1].Value
Sheets("Caisse").Activate
Range("B2").Select

End Sub

Cela fonctionne très bien.

Encore merci, problème résolu.

Bon week-end à tous

RV37
 

Discussions similaires

Statistiques des forums

Discussions
312 449
Messages
2 088 508
Membres
103 873
dernier inscrit
Sabin