Bonjour à tous
J'ai un fichier qui ouvre une boite de dialogue au démarrage pour demander la date d'un fichier à générer
La macro crée donc ce fichier dans un répertoire dédié
J'éxecute jusqu'à maintenant la macro sur la feuille "Feuil1" mais je souhaiterais à présent que la date soit cherchée dans tous les onglets car il s'agit d'un planning et le temps passant je n'ai plus de place sur la feuille 1
Voici mon code actuel :
Private Sub Workbook_Open()
Dim Plage As Range
Dim Cellule As Range
Do While Not IsDate(question)
1 On Error Resume Next
question = InputBox("Merci de saisir la date souhaitée au format jj/mm/aaaa", "", , 1000, 3000)
If question = "" Then
Application.DisplayAlerts = False
Application.Quit
Exit Sub
End If
question = CDate(question)
If Year(question) < 2006 Or Year(question) > 2020 Then GoTo 1
Loop
fichier = Day(question) & "-" & Month(question) & "-" & Year(question)
'la ligne suivante permet de faire tourner le code silencieusement
Application.ScreenUpdating = False
Application.EnableEvents = False
'sauvegarde du fichier
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\MOI\Mes documents\REPERTOIRE\Dates\" & fichier, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False
MonNom = ActiveWorkbook.Name
ChDir "C:\Documents and Settings\MOI\Mes documents\REPERTOIRE"
Workbooks.Open Filename:= _
"C:\Documents and Settings\MOI\Mes documents\REPERTOIRE\Fichier.xls"
Set Plage = Workbooks("Fichier.xls").Sheets("Feuil1").Range(Cells(3, 2), Cells(1, 256))
For Each Cellule In Plage
If Cellule.Value = question Then
Cellule.Activate
ActiveCell.Offset(0, n).Range("A1:b11").Select
Selection.Copy
Workbooks(MonNom).Activate
Range("b2").Select
Selection.PasteSpecial Paste:=xlAll
End If
Next
Workbooks.Open Filename:="C:\Documents and Settings\MOI\Mes documents\REPERTOIRE\Fichier.xls"
ActiveWindow.Close
……
TRAITEMENT de la commande
……..
Workbooks.Open Filename:="C:\Documents and Settings\MOI\Mes documents\REPERTOIRE\Fichier.xls"
ActiveWindow.Close Savechanges:=False
Application.DisplayAlerts = False
Workbooks(MonNom).Activate
ActiveWindow.Close Savechanges:=True
Application.Quit
End Sub
Le probleme est sur la définition de la variable Plage qui se réfere dans l'état uniquement à Feuil1
Avec mes remerciements
Bonne journée à tous
J'ai un fichier qui ouvre une boite de dialogue au démarrage pour demander la date d'un fichier à générer
La macro crée donc ce fichier dans un répertoire dédié
J'éxecute jusqu'à maintenant la macro sur la feuille "Feuil1" mais je souhaiterais à présent que la date soit cherchée dans tous les onglets car il s'agit d'un planning et le temps passant je n'ai plus de place sur la feuille 1
Voici mon code actuel :
Private Sub Workbook_Open()
Dim Plage As Range
Dim Cellule As Range
Do While Not IsDate(question)
1 On Error Resume Next
question = InputBox("Merci de saisir la date souhaitée au format jj/mm/aaaa", "", , 1000, 3000)
If question = "" Then
Application.DisplayAlerts = False
Application.Quit
Exit Sub
End If
question = CDate(question)
If Year(question) < 2006 Or Year(question) > 2020 Then GoTo 1
Loop
fichier = Day(question) & "-" & Month(question) & "-" & Year(question)
'la ligne suivante permet de faire tourner le code silencieusement
Application.ScreenUpdating = False
Application.EnableEvents = False
'sauvegarde du fichier
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\MOI\Mes documents\REPERTOIRE\Dates\" & fichier, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False
MonNom = ActiveWorkbook.Name
ChDir "C:\Documents and Settings\MOI\Mes documents\REPERTOIRE"
Workbooks.Open Filename:= _
"C:\Documents and Settings\MOI\Mes documents\REPERTOIRE\Fichier.xls"
Set Plage = Workbooks("Fichier.xls").Sheets("Feuil1").Range(Cells(3, 2), Cells(1, 256))
For Each Cellule In Plage
If Cellule.Value = question Then
Cellule.Activate
ActiveCell.Offset(0, n).Range("A1:b11").Select
Selection.Copy
Workbooks(MonNom).Activate
Range("b2").Select
Selection.PasteSpecial Paste:=xlAll
End If
Next
Workbooks.Open Filename:="C:\Documents and Settings\MOI\Mes documents\REPERTOIRE\Fichier.xls"
ActiveWindow.Close
……
TRAITEMENT de la commande
……..
Workbooks.Open Filename:="C:\Documents and Settings\MOI\Mes documents\REPERTOIRE\Fichier.xls"
ActiveWindow.Close Savechanges:=False
Application.DisplayAlerts = False
Workbooks(MonNom).Activate
ActiveWindow.Close Savechanges:=True
Application.Quit
End Sub
Le probleme est sur la définition de la variable Plage qui se réfere dans l'état uniquement à Feuil1
Avec mes remerciements
Bonne journée à tous