bonsoir,
j aurais besoin d' aide pour ecrire une macro.
voilà,j' aurais voulu qu une macro ouvre une boite de dialogue pour demander
pour quel date on veut imprimer,
ensuite qu elle trouve cette date dans la feuille
"effectifs clients" sur la ligne C4:AG4 et qu elle verifie si les ligne
?6:?45 ne sont pas vide et la condition supreme
que si la cellule est renseignée imprimer l onglet donc le nom se trouve sur
la meme ligne dans la colonne b
1/janv 2/janv 3/janv
ex: enfance soir 25
donc comme il y a 25 en D3 imprimer longlet nommé "enfance"
Sub test1() rep = InputBox("Entrez une date") If IsDate(rep) Then rep = CDate(rep) With Sheets("effectifs clients") col = Application.Match(rep * 1, .[C4:AG4], 0) If IsNumeric(col) Then col = col + 2 ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row On Error Resume Next feuille = .Cells(ligne, 1) Sheets(feuille).PrintOut If Err.Number <> 0 Then Err.Clear MsgBox "nom de feuille erroné : " & .Cells(ligne, 1) End If End If End With End If End Sub
Cordialement. Daniel "Cyr13" a écrit dans le message de news:
Oups ...j ai oublier le merci de rigeur
Bonsoir.
Essaie :
Sub test1()
rep = InputBox("Entrez une date")
If IsDate(rep) Then
rep = CDate(rep)
With Sheets("effectifs clients")
col = Application.Match(rep * 1, .[C4:AG4], 0)
If IsNumeric(col) Then
col = col + 2
ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row
On Error Resume Next
feuille = .Cells(ligne, 1)
Sheets(feuille).PrintOut
If Err.Number <> 0 Then
Err.Clear
MsgBox "nom de feuille erroné : " & .Cells(ligne, 1)
End If
End If
End With
End If
End Sub
Cordialement.
Daniel
"Cyr13" <ingold.cyril@wanadoo.fr> a écrit dans le message de news:
OSLCBuweIHA.4476@TK2MSFTNGP06.phx.gbl...
Sub test1() rep = InputBox("Entrez une date") If IsDate(rep) Then rep = CDate(rep) With Sheets("effectifs clients") col = Application.Match(rep * 1, .[C4:AG4], 0) If IsNumeric(col) Then col = col + 2 ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row On Error Resume Next feuille = .Cells(ligne, 1) Sheets(feuille).PrintOut If Err.Number <> 0 Then Err.Clear MsgBox "nom de feuille erroné : " & .Cells(ligne, 1) End If End If End With End If End Sub
Cordialement. Daniel "Cyr13" a écrit dans le message de news:
Oups ...j ai oublier le merci de rigeur
Cyr13
merci pour cette reponse aussi rapide, mais cela ne marche pas j obtient "nom de feuille erroné" alors que le nom du client en b5 et le meme que celui de l onglet
merci pour cette reponse aussi rapide, mais cela ne marche pas
j obtient "nom de feuille erroné" alors que le nom du client en b5 et le
meme que celui de l onglet
merci pour cette reponse aussi rapide, mais cela ne marche pas j obtient "nom de feuille erroné" alors que le nom du client en b5 et le meme que celui de l onglet
Daniel.C
Oups, j'avais compris d'après ton exemple, que les noms des feuilles étaient en colonne A. Utilise :
Sub test1() rep = InputBox("Entrez une date") If IsDate(rep) Then rep = CDate(rep) With Sheets("effectifs clients") col = Application.Match(rep * 1, .[C4:AG4], 0) If IsNumeric(col) Then col = col + 2 ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row On Error Resume Next feuille = .Cells(ligne, 2) Sheets(feuille).PrintOut If Err.Number <> 0 Then Err.Clear MsgBox "nom de feuille erroné : " & .Cells(ligne, 1) End If End If End With End If End Sub
Daniel "Cyr13" a écrit dans le message de news:
merci pour cette reponse aussi rapide, mais cela ne marche pas j obtient "nom de feuille erroné" alors que le nom du client en b5 et le meme que celui de l onglet
Oups, j'avais compris d'après ton exemple, que les noms des feuilles étaient
en colonne A. Utilise :
Sub test1()
rep = InputBox("Entrez une date")
If IsDate(rep) Then
rep = CDate(rep)
With Sheets("effectifs clients")
col = Application.Match(rep * 1, .[C4:AG4], 0)
If IsNumeric(col) Then
col = col + 2
ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row
On Error Resume Next
feuille = .Cells(ligne, 2)
Sheets(feuille).PrintOut
If Err.Number <> 0 Then
Err.Clear
MsgBox "nom de feuille erroné : " & .Cells(ligne, 1)
End If
End If
End With
End If
End Sub
Daniel
"Cyr13" <ingold.cyril@wanadoo.fr> a écrit dans le message de news:
O8C0NwxeIHA.532@TK2MSFTNGP03.phx.gbl...
merci pour cette reponse aussi rapide, mais cela ne marche pas
j obtient "nom de feuille erroné" alors que le nom du client en b5 et le
meme que celui de l onglet
Oups, j'avais compris d'après ton exemple, que les noms des feuilles étaient en colonne A. Utilise :
Sub test1() rep = InputBox("Entrez une date") If IsDate(rep) Then rep = CDate(rep) With Sheets("effectifs clients") col = Application.Match(rep * 1, .[C4:AG4], 0) If IsNumeric(col) Then col = col + 2 ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row On Error Resume Next feuille = .Cells(ligne, 2) Sheets(feuille).PrintOut If Err.Number <> 0 Then Err.Clear MsgBox "nom de feuille erroné : " & .Cells(ligne, 1) End If End If End With End If End Sub
Daniel "Cyr13" a écrit dans le message de news:
merci pour cette reponse aussi rapide, mais cela ne marche pas j obtient "nom de feuille erroné" alors que le nom du client en b5 et le meme que celui de l onglet
Cyr13
Génial, cela fonctionne, que dire si ce n'est un grand merci et que si tout le monde pouvait s' aider comme ici le monde n' en serait que meilleur !!.
Génial, cela fonctionne, que dire si ce n'est un grand merci et que si tout
le monde pouvait s' aider comme ici le monde n' en serait que meilleur !!.
Génial, cela fonctionne, que dire si ce n'est un grand merci et que si tout le monde pouvait s' aider comme ici le monde n' en serait que meilleur !!.
Cyr13
bonsoir a l'attention de Daniel.C
le code fonction bien, mais seulement avec le premier clients trouver, puis le msgbox affiche "L'onglet de ce client n'existe Pas !! une solution peut etre... merci d avance
bonsoir a l'attention de Daniel.C
le code fonction bien, mais seulement avec le premier clients trouver, puis
le msgbox affiche "L'onglet de ce client n'existe Pas !!
une solution peut etre... merci d avance
le code fonction bien, mais seulement avec le premier clients trouver, puis le msgbox affiche "L'onglet de ce client n'existe Pas !! une solution peut etre... merci d avance
Cyr13
bonjour Daniel.C suite au test de la macro j ai decouvert un probleme tout fonctionne bien pour le premier client mais on dirait qu elle plante des le deuxieme(probleme de boucle ??) merci de l aide !! ci joint le code que j ai adapter
Sub Imprimer_Feuille_Livraison()
rep = InputBox("Entrez une date") If IsDate(rep) Then rep = CDate(rep) With Sheets("effectifs clients") col = Application.Match(rep * 1, .[C4:AG4], 0) If IsNumeric(col) Then col = col + 2 ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row On Error Resume Next Feuille = .Cells(ligne, 2) Sheets(Feuille).[J11:K11].Select Sheets(Feuille).AutoFilter Sheets(Feuille).AutoFilter Field:=2, Criteria1:="<>" Attente (500) Sheets(Feuille).PrintOut Sheets(Feuille).AutoFilter Attente (500) If Err.Number <> 0 Then Err.Clear MsgBox "L'onglet de ce client n'existe Pas !!" & .Cells(ligne, 1) End If End If End With End If End Sub ------------------------------------------------------- Sub Attente(milisecond As Integer) Dim Start, PauseTime PauseTime = milisecond / 7200 Start = Timer Do While Timer < Start + PauseTime DoEvents Loop End Sub
bonjour Daniel.C
suite au test de la macro j ai decouvert un probleme
tout fonctionne bien pour le premier client mais on dirait qu elle plante
des le deuxieme(probleme de boucle ??)
merci de l aide !!
ci joint le code que j ai adapter
Sub Imprimer_Feuille_Livraison()
rep = InputBox("Entrez une date")
If IsDate(rep) Then
rep = CDate(rep)
With Sheets("effectifs clients")
col = Application.Match(rep * 1, .[C4:AG4], 0)
If IsNumeric(col) Then
col = col + 2
ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row
On Error Resume Next
Feuille = .Cells(ligne, 2)
Sheets(Feuille).[J11:K11].Select
Sheets(Feuille).AutoFilter
Sheets(Feuille).AutoFilter Field:=2, Criteria1:="<>"
Attente (500)
Sheets(Feuille).PrintOut
Sheets(Feuille).AutoFilter
Attente (500)
If Err.Number <> 0 Then
Err.Clear
MsgBox "L'onglet de ce client n'existe Pas !!" & .Cells(ligne,
1)
End If
End If
End With
End If
End Sub
-------------------------------------------------------
Sub Attente(milisecond As Integer)
Dim Start, PauseTime
PauseTime = milisecond / 7200
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
End Sub
bonjour Daniel.C suite au test de la macro j ai decouvert un probleme tout fonctionne bien pour le premier client mais on dirait qu elle plante des le deuxieme(probleme de boucle ??) merci de l aide !! ci joint le code que j ai adapter
Sub Imprimer_Feuille_Livraison()
rep = InputBox("Entrez une date") If IsDate(rep) Then rep = CDate(rep) With Sheets("effectifs clients") col = Application.Match(rep * 1, .[C4:AG4], 0) If IsNumeric(col) Then col = col + 2 ligne = Intersect(.Columns(col), .Rows("5:60000")).Find("*").Row On Error Resume Next Feuille = .Cells(ligne, 2) Sheets(Feuille).[J11:K11].Select Sheets(Feuille).AutoFilter Sheets(Feuille).AutoFilter Field:=2, Criteria1:="<>" Attente (500) Sheets(Feuille).PrintOut Sheets(Feuille).AutoFilter Attente (500) If Err.Number <> 0 Then Err.Clear MsgBox "L'onglet de ce client n'existe Pas !!" & .Cells(ligne, 1) End If End If End With End If End Sub ------------------------------------------------------- Sub Attente(milisecond As Integer) Dim Start, PauseTime PauseTime = milisecond / 7200 Start = Timer Do While Timer < Start + PauseTime DoEvents Loop End Sub