Impression via LisBox erreur1004

oasisjf Messages postés 30 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 15 mai 2008 - 1 mars 2008 à 15:32
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 2 mars 2008 à 16:57
Bonjour le Forum,


Besoins d'aide en effet j'ai réalisé un Userform dans lequel il ya un bouton pour pouvoir visualiser les plages à imprimer de ma Feuille1 d' Excel 
 En cliquant sur unpremier bouton situé sur ma Feuille1 j'appel l'Userform là ont y triouve un listbox et bouton "CommandButton3".

Dans le ListBox toutes mes plages soit 18 au total s'affiche en suite à moi de selectionner les plages que je veux visulaser puis je cique sur un autre bouton "CommandButton3" et j'ai mon aperçu via un module1 "Macro1imprim".

Lorsque je selectionne de 1 à 7 plage tous fonctionne parfaitement bien PARCONTRE lorsque je veux plus de 7 plages Erreur :

Erreur d'execution '1004':
Impossible de définir la propriété PrintArea de la classe PageSetup

ma commande :

Private Sub CommandButton3_Click()
Sheets("Feuille1 ").Unprotect
Dim Cpt
Cpt = 0
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
'incrémente le compteur
Cpt = Cpt + 1
'définition de la zone d'impression
Dim ZoneImpr As StringZoneImpr IIf(Cpt 1, tabAdresses(i), tabAdresses(i) & "," & ZoneImpr)
ActiveSheet.PageSetup.PrintArea = ZoneImpr
End If
Next i
Unload Me
Call Macro1imprim
Unload Me
End Sub

Private Sub UserForm_Initialize()
Dim Nom As Name
Dim tabZones As Variant
Dim i As Integer


tabAdresses = Array()
tabZones = Array()


'Recherche de noms dan sla liste des plages nommées
For Each Nom In ActiveWorkbook.Names
  If Left(Nom.Name, 7) = "Feuille" And InStr(1, Nom.RefersTo, ActiveSheet.Name) > 0 Then
  'affectation aux tableaux
    ReDim Preserve tabZones(UBound(tabZones) + 1)
    tabZones(UBound(tabZones)) = Nom.Name
    ReDim Preserve tabAdresses(UBound(tabAdresses) + 1)
    tabAdresses(UBound(tabAdresses)) = Right(Nom.RefersTo, Len(Nom.RefersTo) - 1)
  End If
Next Nom
'Remplissage du ListBox
ListBox1.List() = tabZones
 Dim hwnd As Long, Style As Long
End Sub

je n'arrive pas à trouver j'espère avoir votre aide
merci<!-- / message --><!-- sig -->

7 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 mars 2008 à 15:49
topic déplacé de VB6 vers VBA !
0
oasisjf Messages postés 30 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 15 mai 2008
1 mars 2008 à 16:04
En espérent etre sur le bon Thème

@ + oasisjf
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 mars 2008 à 16:39
maintenant oui....

ps : le bouton "réponse acceptée" sert à valider la réponse qui résoud ton problème, pas pour la rendre publique...

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
1 mars 2008 à 17:35
Salut,

aussi met Dim ZoneImpr As String avant la boucle for next.

mais en fait,  je pense qu' au lieu de definir une zone d' impression a chaque fois essaye plutot d' imprimer comme suit

ZoneImpr.PrintOut Copies:=1, Collate:=True

mais pour que cela marche il faut que ta variable ZoneImpr soit un Range donc il faut aussi changer le reste

Dim ZoneImpr As range, MaPlage as range
set Maplage = tabAdresses(i)
Set ZoneImpr IIf(Cpt 1, Maplage , Union(Maplage ,ZoneImpr))

J' ai pas teste mais cela te donne le prncipe de l' idee

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
oasisjf Messages postés 30 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 15 mai 2008
1 mars 2008 à 19:12
Bonsoir,

Peux tu m'eclairer un peu plus je suis débutant en VBA je commence à adapter losque j'ai un exemple type classeur mais là je pédale dur

dans un premier temps j'ai dans insertion puis definir enregistrer mes plages soit au total 17

ensuite dans l'userform j'ai mes commande comme indiqué plus haut.

à ce stade sa fonctionne bien je coche les plages que je veux visualiser MAIS lorsque je dépasse 7 plages j' ai l'erreur 1004 .

je suis près à changer l'ensemble de mes commandes mais je ne sais pas comment m'y prendre

@ + oasisjf
0
oasisjf Messages postés 30 Date d'inscription jeudi 29 novembre 2007 Statut Membre Dernière intervention 15 mai 2008
1 mars 2008 à 22:40
Re,

Pour l'instant j'ai un peu avancé en renomant le nom de ma feuille1 par "'f" simplement je peu passer de 7 à 17 plages en visu, Par contre il me reste la plage 18 que je ne peu visualiser par ce que l'erreur 1004 reviens.

Déjà un bon début j'avance à petit pas

@ + oasisjf
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
2 mars 2008 à 16:57
Salut,

tes plages sont elles contigu ?

A+
0
Rejoignez-nous