Vba : code pour afficher value dans cell

jepi67

XLDnaute Occasionnel
Bonjour à toutes et à tous,

Je bute sur une ligne de code pour afficher dans une cell de ma feuil la valeur donnée en réponse à une InputBox. :(
Quelqu'un peut-il me dépanner ? :whistle:

Voici le code:
Code:
Sub Imp_envelop_com()
        ' Macro enregistrée le 08/10/2005 par jepi67
'
    Réponse = InputBox('Combien d'enveloppes veux-tu imprimer en une fois ? maximum 20, minimum 1', 'Nombre')
        If Réponse < 1 Or Réponse > 20 Then
            MsgBox Réponse & ' doit être un nombre entre 1 et 20. pour ANNULER entre 0 et tape OK'
        End If
    
    Range('L11').Value = Reponse
[b]Afficher dans 'L11' la valeur de 'Reponse'
[/b]
    For i = 1 To Réponse
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        Sheets('Nouv. base').Select
        Range('A4:H4').Select
        Selection.Copy
        Range('A1251').Select
        ActiveSheet.Paste
        Range('A5:H1251').Select
        Range('H1251').Activate
        Application.CutCopyMode = False
        Selection.Copy
        Range('A4').Select
        ActiveSheet.Paste
        Sheets('Enveloppe_com').Select
    Next i
    End Sub
Merci d'avance

PS : Si vous voyez d'autres imperfection dans cette macro n'hésitez pas à me faire la remarque, j'apprends ;)

Message édité par: jepi67, à: 15/10/2005 11:59
 

michel_m

XLDnaute Accro
Salut Jipé

Dans l'urgence

Range('L11').Value = Reponse

tu as marquer un accent sur réponse au départ

mais tu peux écrire

Range('L11') = Réponse

Il faudrait que tu évites les copy- paste, select qui ralentissent Hénormément ta macro.

Je regarde ca cet aprem mais si qqn d'autre etc etc

bon aprem

Michel_M
 

jepi67

XLDnaute Occasionnel
Bonjour Michel et Ziopizza,

Merci, c'était plus simple que je croyais! Va falloir que je fasse mieux gaffe à respecter les accents :eek:hmy:
Le mien est Alsacien... :) :p

Quand aux 'copy-paste' ? merci s'il vous reste qlqs minutes; mais il n'y a pas le feu, profitez du soleil ce WE, si vous en avez... :lol:

à+
 

jepi67

XLDnaute Occasionnel
Re,

Peut-être que nous pourrons un jour le prendre ensemble ?
Le chianti évidemment ;)

à+
Edit C'est moi qui l'offre pour votre 'peine'

Message édité par: jepi67, à: 15/10/2005 13:07

Message édité par: jepi67, à: 15/10/2005 13:08
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Jepi, Michel_M, ZioPizza, le Forum

Pour moi ce sera plus un bon Beaujolai qu'un Chianti, vu que je suis à coté de l'Italie ;)

Sinon voici ma contribution dans la limite de ce que j'ai compris dans l'interprétation de la macro originale (il doit y avoir des forules en feuille 'Enveloppe_com' en lien vers la feuille ''Nouv. base' pour que les impressions se mettent à jour en imprimant 'Enveloppe_com' ou bien ?

Option Explicit

Sub Imp_envelop_com()
Dim InputNombre As Integer
Dim Bad As Byte
Dim WSEnveloppe As Worksheet
Dim WSNouvBase As Worksheet
Dim i As Byte

With ThisWorkbook
&nbsp; &nbsp;
Set WSEnveloppe = .Worksheets('Enveloppe_com')
&nbsp; &nbsp;
Set WSNouvBase = .Worksheets('Nouv. base')
End With

Start:
InputNombre = Application.InputBox('Combien d
'enveloppes veux-tu imprimer en une fois ?' & vbCrLf & _
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'maximum 20, minimum 1', 'Nombre d
'Enveloppes', Type:=1)
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;
If InputNombre < 1 Or InputNombre > 20 Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Bad = MsgBox('La valeur doit être comprise&nbsp; entre 1 et 20' & vbCrLf & _
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Voulez vous continuer ?', vbCritical + vbYesNo)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
If Bad = vbNo Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Exit Sub
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Else
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
GoTo Start
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp;
&nbsp; &nbsp;
WSEnveloppe.Range('L11').Value = InputNombre
'sur quelle feuille ?



&nbsp; &nbsp;
For i = 1 To InputNombre
&nbsp; &nbsp; &nbsp; WSEnveloppe.PrintOut
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp;
With WSNouvBase
&nbsp; &nbsp; &nbsp; &nbsp; .Range('A4:H4').Copy .Range('A1251')
&nbsp; &nbsp; &nbsp; &nbsp; .Range('A5:H1251').Copy .Range('A4')
&nbsp; &nbsp; &nbsp; &nbsp;
End With
&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;
Next i
End Sub


Bon Week End à tous et toutes
[ol]@+Thierry[/ol]
 

jepi67

XLDnaute Occasionnel
Bonjour le Forum,
Bonjour Michel_M, Yves et Thierry,

:woohoo: je n'en demandais pas tant, mais j'apprécie (comme un bon Juliénas :p ).

Thierry tu as tout à fait deviné les tenants et about... de mon petit programme. Je vais essayer d'adapter le code car j'ai 2 feuilles 'Enveloppe' pour 2 formats d'env. diff. (A5 et commercial) et je voudrai que la même macro commande soit l'une ou l'autre.

Laissez moi creuser un peu, je reviendrai avec un fichier joint lorsque j'aurai fini :whistle: ou si j'ai encore besoin d'aide :S

En tout cas merci à tous et bon WE
 

jepi67

XLDnaute Occasionnel
Bonjour à tous,

Voilà, j'ai terminé mon p'tit prog d'impression d'enveloppes à partir d'une liste d'adresses.
Il est surement perfectible, les critiques (constructives :) ) sont les bienvenues.

Et HOP un fichier joint, un! ;)

Merci à toutes et tous [file name=Imp_envelop_jepi.zip size=30130]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Imp_envelop_jepi.zip[/file]
 

Pièces jointes

  • Imp_envelop_jepi.zip
    29.4 KB · Affichages: 23

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
322
Réponses
5
Affichages
341
Réponses
7
Affichages
550

Statistiques des forums

Discussions
312 329
Messages
2 087 332
Membres
103 519
dernier inscrit
Thomas_grc11