> Tous les forums > Forum Bureautique
 besoin d'une macro excel 2007Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
noe2008
  Posté le 27/01/2015 @ 10:11 
Aller en bas de la page 
Petit astucien

salut les amis j'ai besoin d'une macro je vais simplifier : dans la feuille 1 dans la cellule A1 écrire 1 puis imprimer dans la cellule A1 écrire 2 puis imprimer dans la cellule A1 écrire 3 puis imprimer dans la cellule A1 écrire 4 puis imprimer ..................................... ..................................... dans la cellule A1 ecrire n puis imprimer c'est à dire changer la valeure de la cellule A1 de 1 à n et imprimer a chaque fois et je veux que je pourrai le nombre : n merci

Publicité
ferrand
 Posté le 27/01/2015 à 10:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Quelque chose comme ça :

Sub ImprimerNb()
Dim n, i%
n = Application.InputBox("Combien voulez-vous d'impressions ?", "Impressions numérotées", , , , , , 1)
If IsNumeric(n) Then
n = CInt(n)
For i = 1 To n
Cells(1, 1).Value = i
ActiveSheet.PrintOut
Next i
End If
End Sub

noe2008
 Posté le 27/01/2015 à 14:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci je vais essayer

noe2008
 Posté le 27/01/2015 à 15:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

ça marche pas desolé

ferrand
 Posté le 27/01/2015 à 17:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

noe2008 a écrit :

ça marche pas desolé

Un peu court, jeune homme !

Si vous ne savez pas vous en servir, dîtes que vous ne savez pas !

Pas que ça ne marche pas, sans expliquer tout ce que vous avez fait pour parvenir à un tel résultat !

Suffit pas de regarder la macro pour qu'elle fonctionne !

noe2008
 Posté le 27/01/2015 à 23:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

monsieur ferrand

apparemment j'ai besoin d'une réponse pas d'un conseil

gilbert_rgi
 Posté le 28/01/2015 à 09:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

noe2008 a écrit :

ça marche pas desolé

ben si la macro de monsieur Ferrand fonctionne

c'est bien donc vous qui avez besoin d'un conseil pour la faire fonctionner

ferrand
 Posté le 28/01/2015 à 09:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

noe2008 a écrit :

monsieur ferrand

apparemment j'ai besoin d'une réponse pas d'un conseil

Tu demandes une macro, tu as une réponse qui te fournit une macro accomplissant l'action demandée.

Cette macro fonctionne parfaitement ! Si tu constates le contraire, c'est soit :

1) tu ne sais pas utiliser une macro (faut apprendre !)

2) tu n'es pas dans les conditions requises pour exécuter l'action voulue (faut t'y mettre !)

3) tu n'as pas posé la bonne question (là, ?)

foremar
 Posté le 28/01/2015 à 10:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour

Je confirme également que la macro de Ferrand fonctionne exactement comme la demande a été décrite.

Par contre, je ne vois pas très bien à quoi ça sert d'imprimer un 1, puis un 2 etc.... sur une feuille.

Visiblement, noe2008, il faut reformuler ta question pour décrire plus précisemment ce que tu veux obtenir.

Cordialement

Publicité
noe2008
 Posté le 28/01/2015 à 11:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

salut

j'ai seuleument essayer de simplifier

ma feuille contient des cellules contenant des formules :" recherchev " une fois je change la valeur de la cellule A1 j'ai les donnée d'un autre client dans ma feuille

chaque soir je dois imprimer entre 200 et 500 cette feuille en changeant la valeur de A1

la macro me simplifiera cette tache penible

merci d'avance pour l'effort

gilbert_rgi
 Posté le 28/01/2015 à 11:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

alors qu'Est-ce qui ne fonctionne pas dans la macro

noe2008
 Posté le 28/01/2015 à 11:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

j'ai crée une macro j'ai copié" Sub ImprimerNb()

Dim n, i%
n = Application.InputBox("Combien voulez-vous d'impressions ?", "Impressions numérotées", , , , , , 1)
If IsNumeric(n) Then
n = CInt(n)
For i = 1 To n
Cells(1, 1).Value = i
ActiveSheet.PrintOut
Next i
End If

End Sub" et j-ai collé dans ma macro mais elle n'a pas fonctionné

ferrand
 Posté le 28/01/2015 à 11:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

et j-ai collé dans ma macro mais elle n'a pas fonctionné

Tu as collé où ?

NB- Quand on te fournit une macro complète (commençant par Sub... et se terminant par End Sub) et prête à fonctionner, tu la copies intégralement pour la coller dans un module standard), puis tu te places sur la feuille sur laquelle elle doit agir et tu lances son exécution (après avoir veillé au cas particulier que l'imprimante par défaut est sous tension et prête à fonctionner).



Modifié par ferrand le 28/01/2015 12:03
noe2008
 Posté le 28/01/2015 à 12:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

ça a fonctionné merci ferrand

ferrand
 Posté le 28/01/2015 à 15:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

eh bien, parfait ! Maintenant, tu as ajouté que tu lançais ainsi l'impression d'un plutôt grand nombre de pages. La macro les enverra à l'impression nettement plus vite que le déroulement de l'impression, il y a donc lieu de surveiller si cela n'entraîne pas de difficulté... Si c'était le cas, il serait sans doute judicieux de temporiser l'envoi à l'impression, et pour cela connaître le temps moyen d'impression d'une de tes pages.

noe2008
 Posté le 30/01/2015 à 11:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

salut monsieur ferrand

est il possible temporiser l'impression à 5 seconde entre chaque impression?

gilbert_rgi
 Posté le 30/01/2015 à 11:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour

voilà pour 5s fonctionne en 32bits

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Function Message_Temporaire(Message As String, TpsenSeconde As Integer, TitreMessage As String)
CreateObject("WScript.Shell").PopUp Message, TpsenSeconde, TitreMessage
End Function

Sub ImprimerNb()
Dim n, i%
n = Application.InputBox("Combien voulez-vous d'impressions ?", "Impressions numérotées", , , , , , 1)
If IsNumeric(n) Then
n = CInt(n)
For i = 1 To n
Cells(1, 1).Value = i
ActiveSheet.PrintOut
Sleep (5000)
Next i
Message_Temporaire "Impressions terminées", 2, "Message"
Cells(1, 1).Value = ""
End If
End Sub



Modifié par gilbert_rgi le 30/01/2015 11:32
Publicité
ferrand
 Posté le 30/01/2015 à 12:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

J'aurais pour ma part été au plus simple, sans faire appel à une API...

Sub ImprimerNb()
Dim n, i%
n = Application.InputBox("Combien voulez-vous d'impressions ?", "Impressions numérotées", , , , , , 1)
If IsNumeric(n) Then
n = CInt(n)
For i = 1 To n
Cells(1, 1).Value = i
ActiveSheet.PrintOut
Temporiser Time + TimeSerial(0, 0, 5)
Next i
End If
End Sub

Sub Temporiser(t)
Do While Time < t
Loop
End Sub

A tester selon convenance...

noe2008
 Posté le 30/01/2015 à 12:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci ça marche bien

gilbert_rgi
 Posté le 30/01/2015 à 14:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

ferrand a écrit :

J'aurais pour ma part été au plus simple, sans faire appel à une API...

il y a plusieurs chemins pour aller à Rome

une autre encore avec les API

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Declare Function MessageBoxTimeout Lib "user32.dll" Alias "MessageBoxTimeoutA" ( _
ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal uType As Long, _
ByVal wLanguageID As Long, _
ByVal lngMilliseconds As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Public Sub test_impressions()
Const cmsg As String = "Impressions Terminées"
Const cTitle As String = "Message Popup"
Dim retval As Long
Dim n, i%
n = Application.InputBox("Combien voulez-vous d'impressions ?", "Impressions numérotées", , , , , , 1)
'MsgBox n
If n = False Then Exit Sub
If IsNumeric(n) Then
n = CInt(n)
For i = 1 To n
Cells(1, 1).Value = i
ActiveSheet.PrintOut
Sleep (5000) 'temporisation
Next i
'message temporaire
retval = MessageBoxTimeout(FindWindow(vbNullString, Title), cmsg, cTitle, 0, 0, 2000) 'en ms

If retval <> 7 Then
'ne rien faire
End If

Cells(1, 1).Value = ""
End If

End Sub

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
[Excel 2007] Macro : Sélection d'un tableau selon sa longueur variable
excel 2007 macro mise en page, quadrillage, filtre
Excel 2007 macro rajouter tri + cellule en surbrillance à chaque changement
macro sous excel 2007
(Macro) Copier onglet sur autre fichier Excel (2007)
Probleme excel - tri dans macro Excel 2007
macro majuscule dans excel 2007
copier des cellules avec une macro excel 2007
Excel 2007 Affecter bouton barre d'outils à macro.
Macro - Insérer une ligne vierge sous Excel 2007
Plus de sujets relatifs à besoin d''une macro excel 2007
 > Tous les forums > Forum Bureautique