creation d' une macro

Le
Cyr13
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"
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Cyr13
Le #5236281
Oups ...j ai oublier le merci de rigeur
Daniel.C
Le #5236251
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"

Oups ...j ai oublier le merci de rigeur



Cyr13
Le #5236181
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
Le #5236161
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"
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
Le #5236141
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
Le #5235571
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
Cyr13
Le #5180711
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
Publicité
Poster une réponse
Anonyme