bonjour
ce message suite au code de 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 plantedes
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
Il n'y a pas de boucle. La macro n'imprime d'une feuille à la fois. J'ai corrigé quelques erreurs. Modifie ton code comme suit :
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) [J11:K11].AutoFilter [J11:K11].AutoFilter Field:=2, Criteria1:="<>" Attente (500) Sheets(feuille).PrintOut [J11:K11].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
Daniel "Cyr13" a écrit dans le message de news:
bonjour ce message suite au code de 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 plantedes 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
Il n'y a pas de boucle. La macro n'imprime d'une feuille à la fois. J'ai
corrigé quelques erreurs. Modifie ton code comme suit :
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)
[J11:K11].AutoFilter
[J11:K11].AutoFilter Field:=2, Criteria1:="<>"
Attente (500)
Sheets(feuille).PrintOut
[J11:K11].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
Daniel
"Cyr13" <ingold.cyril@wanadoo.fr> a écrit dans le message de news:
u0akaBKfIHA.4704@TK2MSFTNGP03.phx.gbl...
bonjour
ce message suite au code de 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
plantedes 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
Il n'y a pas de boucle. La macro n'imprime d'une feuille à la fois. J'ai corrigé quelques erreurs. Modifie ton code comme suit :
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) [J11:K11].AutoFilter [J11:K11].AutoFilter Field:=2, Criteria1:="<>" Attente (500) Sheets(feuille).PrintOut [J11:K11].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
Daniel "Cyr13" a écrit dans le message de news:
bonjour ce message suite au code de 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 plantedes 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
Daniel.C
Si j'ai mal compris et que pour la date entrée, il peut y avoir plusieurs feuilles, fais-le moi savoir. Daniel "Cyr13" a écrit dans le message de news:
bonjour ce message suite au code de 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 plantedes 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
Si j'ai mal compris et que pour la date entrée, il peut y avoir plusieurs
feuilles, fais-le moi savoir.
Daniel
"Cyr13" <ingold.cyril@wanadoo.fr> a écrit dans le message de news:
u0akaBKfIHA.4704@TK2MSFTNGP03.phx.gbl...
bonjour
ce message suite au code de 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
plantedes 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
Si j'ai mal compris et que pour la date entrée, il peut y avoir plusieurs feuilles, fais-le moi savoir. Daniel "Cyr13" a écrit dans le message de news:
bonjour ce message suite au code de 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 plantedes 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
Xavier powaga
Daniel au dodo en tout cas moi j'y vais
"Daniel.C" a écrit dans le message de news:
Si j'ai mal compris et que pour la date entrée, il peut y avoir plusieurs feuilles, fais-le moi savoir. Daniel "Cyr13" a écrit dans le message de news:
bonjour ce message suite au code de 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 plantedes 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
Daniel au dodo
en tout cas moi j'y vais
"Daniel.C" <dZZZcolardelle@free.fr> a écrit dans le message de news:
emAZfALfIHA.3940@TK2MSFTNGP05.phx.gbl...
Si j'ai mal compris et que pour la date entrée, il peut y avoir plusieurs
feuilles, fais-le moi savoir.
Daniel
"Cyr13" <ingold.cyril@wanadoo.fr> a écrit dans le message de news:
u0akaBKfIHA.4704@TK2MSFTNGP03.phx.gbl...
bonjour
ce message suite au code de 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
plantedes 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
Si j'ai mal compris et que pour la date entrée, il peut y avoir plusieurs feuilles, fais-le moi savoir. Daniel "Cyr13" a écrit dans le message de news:
bonjour ce message suite au code de 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 plantedes 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
Cyr13
bonjour ok, je test et te tient au courant merci encore
bonjour
ok, je test et te tient au courant merci encore
bonjour ok, je test et te tient au courant merci encore
Cyr13
bonjour j ai tester mais aucun changement il trouve bien la 1ere valeur numérique dans la colonne du jour demander ,le nom d onglet a imprimer mais seulement pour le premier client ou une valeur est present. (pas forcement le1er de la liste ,aucun soucis de se coter la) il imprime mais ne filtre pas la feuille avant ??une idée.. merci encore de prendre de ton temps pour moi.
bonjour
j ai tester mais aucun changement il trouve bien la 1ere valeur numérique
dans la colonne du jour demander ,le nom d onglet a imprimer mais seulement
pour le premier client ou une valeur est present.
(pas forcement le1er de la liste ,aucun soucis de se coter la) il imprime
mais ne filtre pas la feuille avant ??une idée..
merci encore de prendre de ton temps pour moi.
bonjour j ai tester mais aucun changement il trouve bien la 1ere valeur numérique dans la colonne du jour demander ,le nom d onglet a imprimer mais seulement pour le premier client ou une valeur est present. (pas forcement le1er de la liste ,aucun soucis de se coter la) il imprime mais ne filtre pas la feuille avant ??une idée.. merci encore de prendre de ton temps pour moi.
Daniel.C
Bonjour. Je t'ai demandé s'il pouvait y avoir plusieurs valeurs dans la colonne. Qu'est-ce que tu veux filtrer et quel filtre veux-tu appliquer ? Daniel "Cyr13" a écrit dans le message de news:
bonjour j ai tester mais aucun changement il trouve bien la 1ere valeur numérique dans la colonne du jour demander ,le nom d onglet a imprimer mais seulement pour le premier client ou une valeur est present. (pas forcement le1er de la liste ,aucun soucis de se coter la) il imprime mais ne filtre pas la feuille avant ??une idée.. merci encore de prendre de ton temps pour moi.
Bonjour.
Je t'ai demandé s'il pouvait y avoir plusieurs valeurs dans la colonne.
Qu'est-ce que tu veux filtrer et quel filtre veux-tu appliquer ?
Daniel
"Cyr13" <ingold.cyril@wanadoo.fr> a écrit dans le message de news:
OGWNbQVfIHA.5180@TK2MSFTNGP05.phx.gbl...
bonjour
j ai tester mais aucun changement il trouve bien la 1ere valeur numérique
dans la colonne du jour demander ,le nom d onglet a imprimer mais
seulement pour le premier client ou une valeur est present.
(pas forcement le1er de la liste ,aucun soucis de se coter la) il imprime
mais ne filtre pas la feuille avant ??une idée..
merci encore de prendre de ton temps pour moi.
Bonjour. Je t'ai demandé s'il pouvait y avoir plusieurs valeurs dans la colonne. Qu'est-ce que tu veux filtrer et quel filtre veux-tu appliquer ? Daniel "Cyr13" a écrit dans le message de news:
bonjour j ai tester mais aucun changement il trouve bien la 1ere valeur numérique dans la colonne du jour demander ,le nom d onglet a imprimer mais seulement pour le premier client ou une valeur est present. (pas forcement le1er de la liste ,aucun soucis de se coter la) il imprime mais ne filtre pas la feuille avant ??une idée.. merci encore de prendre de ton temps pour moi.
Cyr13
bonsoir voici le tableau:
B C D E.........AG -------------------------------------------- 1/1 2/1 3/1 clients 1 10 clients 2 ..... clients 40 25
chaque colonne de jour peut contenir jusqu a 40 valeur autant que de clients. dés fois on pense etre explicite,je comprend qu il ne soit pas facile de comprendre les explications des autres avec ce tableau cela devrait etre plus clair. et merci encore
bonsoir
voici le tableau:
B C D E.........AG
--------------------------------------------
1/1 2/1 3/1
clients 1 10
clients 2
.....
clients 40 25
chaque colonne de jour peut contenir jusqu a 40 valeur autant que de
clients. dés fois on pense etre explicite,je comprend qu il ne soit pas
facile de comprendre les explications des autres avec ce tableau cela
devrait etre plus clair.
et merci encore
B C D E.........AG -------------------------------------------- 1/1 2/1 3/1 clients 1 10 clients 2 ..... clients 40 25
chaque colonne de jour peut contenir jusqu a 40 valeur autant que de clients. dés fois on pense etre explicite,je comprend qu il ne soit pas facile de comprendre les explications des autres avec ce tableau cela devrait etre plus clair. et merci encore
Daniel.C
Regarde le code ci-dessous. Tu ne m'as pas réppondu ppour cette histoire de filtre.
Sub Imprimer_Feuille_Livraison() Dim c As Range, ResAdr As String 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 Set c = Intersect(.Columns(col), .Rows("5:60000")).Find("*") If Not c Is Nothing Then 'On Error Resume Next ResAdr = c.Address Do Err.Clear ligne = c.Row feuille = .Cells(ligne, 2) Sheets(feuille).Select [J11:K11].AutoFilter [J11:K11].AutoFilter Field:=2, Criteria1:="<>" Var = Err.Number Attente (500) Var = Err.Number Sheets(feuille).PrintPreview [J11:K11].AutoFilter Attente (500) If Err.Number <> 0 Then Err.Clear MsgBox "L'onglet de ce client n'existe Pas !!" & .Cells(ligne, 1) End If Set c = Intersect(.Columns(col), .Rows("5:60000")).FindNext(c) Loop While Not c Is Nothing And c.Address <> ResAdr On Error GoTo 0 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
Daniel "Cyr13" a écrit dans le message de news:
bonsoir voici le tableau:
B C D E.........AG -------------------------------------------- 1/1 2/1 3/1 clients 1 10 clients 2 ..... clients 40 25
chaque colonne de jour peut contenir jusqu a 40 valeur autant que de clients. dés fois on pense etre explicite,je comprend qu il ne soit pas facile de comprendre les explications des autres avec ce tableau cela devrait etre plus clair. et merci encore
Regarde le code ci-dessous. Tu ne m'as pas réppondu ppour cette histoire de
filtre.
Sub Imprimer_Feuille_Livraison()
Dim c As Range, ResAdr As String
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
Set c = Intersect(.Columns(col), .Rows("5:60000")).Find("*")
If Not c Is Nothing Then
'On Error Resume Next
ResAdr = c.Address
Do
Err.Clear
ligne = c.Row
feuille = .Cells(ligne, 2)
Sheets(feuille).Select
[J11:K11].AutoFilter
[J11:K11].AutoFilter Field:=2, Criteria1:="<>"
Var = Err.Number
Attente (500)
Var = Err.Number
Sheets(feuille).PrintPreview
[J11:K11].AutoFilter
Attente (500)
If Err.Number <> 0 Then
Err.Clear
MsgBox "L'onglet de ce client n'existe Pas !!" &
.Cells(ligne, 1)
End If
Set c = Intersect(.Columns(col), .Rows("5:60000")).FindNext(c)
Loop While Not c Is Nothing And c.Address <> ResAdr
On Error GoTo 0
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
Daniel
"Cyr13" <ingold.cyril@wanadoo.fr> a écrit dans le message de news:
u6u09BWfIHA.3940@TK2MSFTNGP05.phx.gbl...
bonsoir
voici le tableau:
B C D E.........AG
--------------------------------------------
1/1 2/1 3/1
clients 1 10
clients 2
.....
clients 40 25
chaque colonne de jour peut contenir jusqu a 40 valeur autant que de
clients. dés fois on pense etre explicite,je comprend qu il ne soit pas
facile de comprendre les explications des autres avec ce tableau cela
devrait etre plus clair.
et merci encore
Regarde le code ci-dessous. Tu ne m'as pas réppondu ppour cette histoire de filtre.
Sub Imprimer_Feuille_Livraison() Dim c As Range, ResAdr As String 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 Set c = Intersect(.Columns(col), .Rows("5:60000")).Find("*") If Not c Is Nothing Then 'On Error Resume Next ResAdr = c.Address Do Err.Clear ligne = c.Row feuille = .Cells(ligne, 2) Sheets(feuille).Select [J11:K11].AutoFilter [J11:K11].AutoFilter Field:=2, Criteria1:="<>" Var = Err.Number Attente (500) Var = Err.Number Sheets(feuille).PrintPreview [J11:K11].AutoFilter Attente (500) If Err.Number <> 0 Then Err.Clear MsgBox "L'onglet de ce client n'existe Pas !!" & .Cells(ligne, 1) End If Set c = Intersect(.Columns(col), .Rows("5:60000")).FindNext(c) Loop While Not c Is Nothing And c.Address <> ResAdr On Error GoTo 0 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
Daniel "Cyr13" a écrit dans le message de news:
bonsoir voici le tableau:
B C D E.........AG -------------------------------------------- 1/1 2/1 3/1 clients 1 10 clients 2 ..... clients 40 25
chaque colonne de jour peut contenir jusqu a 40 valeur autant que de clients. dés fois on pense etre explicite,je comprend qu il ne soit pas facile de comprendre les explications des autres avec ce tableau cela devrait etre plus clair. et merci encore
Cyr13
bonsoir Daniel.C que dire sinon que tu es formidable cela marche impecable. pour le filtre j ai juste changer le critere <> par 1
ps: puis-je abuser encore de tes connaissances en te demandant si il est possible qu une macro ajoute les onglets elle meme en prenant le nom des clients sur la feuille "effectifs clients"de B6:B45 et qu elle colle se nom en cellule E12 sur chaque onglets qu elle ajoute
bonsoir Daniel.C
que dire sinon que tu es formidable cela marche impecable.
pour le filtre j ai juste changer le critere <> par 1
ps: puis-je abuser encore de tes connaissances en te demandant si il est
possible qu une macro ajoute les onglets elle meme en prenant le nom des
clients sur la feuille "effectifs clients"de B6:B45 et qu elle colle se nom
en cellule E12 sur chaque onglets qu elle ajoute
bonsoir Daniel.C que dire sinon que tu es formidable cela marche impecable. pour le filtre j ai juste changer le critere <> par 1
ps: puis-je abuser encore de tes connaissances en te demandant si il est possible qu une macro ajoute les onglets elle meme en prenant le nom des clients sur la feuille "effectifs clients"de B6:B45 et qu elle colle se nom en cellule E12 sur chaque onglets qu elle ajoute
Daniel.C
Bonsoir. Essaie :
Sub CreerFeuilles() Dim c As Range For Each c In ['effectifs clients'!B6:B45] If c <> "" Then Sheets.Add.Name = c.Value [E12] = c.Value End If Next c End Sub
Cordialement. Daniel "Cyr13" a écrit dans le message de news: %
bonsoir Daniel.C que dire sinon que tu es formidable cela marche impecable. pour le filtre j ai juste changer le critere <> par 1
ps: puis-je abuser encore de tes connaissances en te demandant si il est possible qu une macro ajoute les onglets elle meme en prenant le nom des clients sur la feuille "effectifs clients"de B6:B45 et qu elle colle se nom en cellule E12 sur chaque onglets qu elle ajoute
Bonsoir.
Essaie :
Sub CreerFeuilles()
Dim c As Range
For Each c In ['effectifs clients'!B6:B45]
If c <> "" Then
Sheets.Add.Name = c.Value
[E12] = c.Value
End If
Next c
End Sub
Cordialement.
Daniel
"Cyr13" <ingold.cyril@wanadoo.fr> a écrit dans le message de news:
%23UCN2hvfIHA.5620@TK2MSFTNGP04.phx.gbl...
bonsoir Daniel.C
que dire sinon que tu es formidable cela marche impecable.
pour le filtre j ai juste changer le critere <> par 1
ps: puis-je abuser encore de tes connaissances en te demandant si il est
possible qu une macro ajoute les onglets elle meme en prenant le nom des
clients sur la feuille "effectifs clients"de B6:B45 et qu elle colle se
nom en cellule E12 sur chaque onglets qu elle ajoute
Sub CreerFeuilles() Dim c As Range For Each c In ['effectifs clients'!B6:B45] If c <> "" Then Sheets.Add.Name = c.Value [E12] = c.Value End If Next c End Sub
Cordialement. Daniel "Cyr13" a écrit dans le message de news: %
bonsoir Daniel.C que dire sinon que tu es formidable cela marche impecable. pour le filtre j ai juste changer le critere <> par 1
ps: puis-je abuser encore de tes connaissances en te demandant si il est possible qu une macro ajoute les onglets elle meme en prenant le nom des clients sur la feuille "effectifs clients"de B6:B45 et qu elle colle se nom en cellule E12 sur chaque onglets qu elle ajoute