IMPRESSION LISTBOX SUR FEUIL

GHISLAIN

XLDnaute Impliqué
bonjour a tous
j ai un souci sur l impression de listbox avec 3 colonne contenue dans un USERFORM et en envoyant le contenu sur une feuil excel pour impression
j utilise la syntaxe suivante :

Range('FicheArchive!A36').Resize(ListBox28.List.ListCount,_ ListBox28.ColumnCount).Value = ListBox28.List

si ma listbox contient des informations la formule fonctionne les informations son rangé a partir de la cellule A36 , la seconde sur B36 et la 3 sur C36
si plusieur lignes elles s'inscrivent en dessous

par contre si ma listbox ne contient pas d'information ça me donne une erreur :erreur d execution 1004 erreur définie par l application ou l objet
je n arrive pas a trouver la bonne formule

merci de votre

Ghislain
 

porcinet82

XLDnaute Barbatruc
Salut GHISLAIN,

Tu n'as qu'a faire un control de saisie sur tes listbox avant de coller, si elles sont vides alors une msgbox apparait. Avec un code du genre ca devrait fonctionner :

Code:
Private Sub CommandButton1_Click()
Dim i As Byte

For i = 1 To 3
    If Controls('textbox' & i) = '' Then
        MsgBox 'Veuilez remplir la textbox' & i, vbCritical, 'erreur'
        Controls('textbox' & i).SetFocus
        Exit Sub
    End If
Next i
End Sub

@+

Message édité par: porcinet82, à: 22/02/2006 14:52
 

GHISLAIN

XLDnaute Impliqué
salut porcinet82

le probleme c est que j ai plusieur listbox et que certaine ne pourront etre rempli qu a une date ulterieure par contre j ai besoin d imprimer ce doccument meme si certaine listebox sont pas encore renseigné

merci de ton aide

GHISLAIn
 

GHISLAIN

XLDnaute Impliqué
ben le fichier fais 50ko faudrai que j en prepare un
sinon j ai trouvé une autre astuce

Range('FicheArchive!A36:C43').Value = ListBox28.List


sur cette exemple j ai mit les cellule ou ranger donc la si m'a listbox est vide il plante pas
par contre si ma listbox ne contien que deux ligne les cellules A36 a C38 sont rempli la pas de souci mais en plus il complete le reste des cellule soit A39 à A43 par ça

#N/A #N/A #N/A
#N/A #N/A #N/A
#N/A #N/A #N/A
#N/A #N/A #N/A
#N/A #N/A #N/A
#N/A #N/A #N/A
voila ou j en suis

merci encore

j essaie de faire un fichier joint
 

ChTi160

XLDnaute Barbatruc
Salut GHISLAIN
bonjour porcinet82
sujet intérressant mais comme le porcinet82 un ficher juste pour ne pas avoir à tout recréer ou alors partir à l'ouest
donc si tu le peux,un petit fichier joint
car il peut dans l'état y avoir plein de bonnes et mauvaises réponses Lol
a très bientôt
 

ChTi160

XLDnaute Barbatruc
re
en pièce jointe un fichier que je viens de faire pour une autre question et que j'ai adapté
tu sélectionnes deux lignes dans la listebox1 cela approvisionne la listebox2 ensuite tu fais valider
voilà ce que j'ai mis dans la procèdure du bouton
pour eviter l'eereur
Private Sub CommandButton2_Click()
On Error Resume Next
With Worksheets('Feuil1')
.Range('A1').Resize(Me.ListBox2.ListCount, Me.ListBox2.ColumnCount) = Me.ListBox2.List
End With
On Error GoTo 0
End Sub
tiens nous au courant
ps il y a peut être une erreur de recopie mais cette ligne n'est pas bonne si je peux me permettre
Range('FicheArchive!A36').Resize(ListBox28.List.ListCount,_ ListBox28.ColumnCount).Value = ListBox28.List en rouge ce qui n'a rien a y faire [file name=recuperationV1_20060222160717.zip size=16099]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/recuperationV1_20060222160717.zip[/file]

Message édité par: Chti160, à: 22/02/2006 16:12
 

Pièces jointes

  • recuperationV1_20060222160717.zip
    15.7 KB · Affichages: 37

GHISLAIN

XLDnaute Impliqué
[file name=Classeur1_20060222160829.zip size=13661]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20060222160829.zip[/file] [file name=Classeur1_20060222160829.zip size=13661]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20060222160829.zip[/file]

voila j ai fait un fichier epuré pour que tu comprenne

merci encore
 

Pièces jointes

  • Classeur1_20060222160829.zip
    13.3 KB · Affichages: 31

GHISLAIN

XLDnaute Impliqué
salut jean marie

je viens de voir ton code en faite pour remplir la listbox ça c est ok ce que je cherche a faire c est de renvoyer le contenue de la listbox sur une feuil excel pour impression

si ma listbox est rempli c est ok ça imprime et tout
mais si la listbox est vide ça bug

a savoir que je souhaite imprimer meme si la listbox est vide
j ai mit un fichier joint
merci de votre aide a tous

GHISLAIN
 

ChTi160

XLDnaute Barbatruc
re

non je n'ai pas mis le fichier pour la facon de remplir la listbox c'est le fichier que j'avais sous la main Lol
mais si tu regardes la procèdure du bouton
elle fait ce que tu demandes si listBox vide pas de Bug le reste c'était pour quelqu'un d'autre lol
donc tiens nous au courant

Message édité par: Chti160, à: 22/02/2006 16:29
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Jean Marie, Guislain, le Forum

Une Approche @+... Peut-être pas plus simple, mais j'en ai profité pour épurer aussi tout le module...

Option Explicit

Private Sub UserForm_Initialize()
Dim L As Integer

   
With Me.ListBox28
        .ColumnCount = 3
        .ColumnWidths = '90;40;40'
   
End With
   
   
With Feuil3
       
For L = 1 To .Range('A5000').End(xlUp).Row
          Me.ComboBox1.AddItem .Cells(L, 1)
       
Next
   
End With
   

End Sub


Private Sub ComboBox1_Change()
   
    TextBox19 = ComboBox1.Value

End Sub


Private Sub TextBox19_Change()
Dim Plage As Range, Cell As Range
Dim Recherche As String, Adresse As String
Dim N As Integer

ListBox28.Clear

Recherche = TextBox19.Value

With Feuil2
   
Set Plage = Range(.Range('A2'), .Range('A65536').End(xlUp))
End With

With Plage
Set Cell = .Find(Recherche, LookAt:=xlWhole)
   
If Not Cell Is Nothing Then
    Adresse = Cell.Address
   
Do
       
With ListBox28
            .AddItem Cell.Offset(0, 3), N
            .List(N, 1) = Cell.Offset(0, 1)
            .List(N, 2) = Cell.Offset(0, 2)
       
End With
        N = N + 1
   
   
Set Cell = .FindNext(Cell)
   
Loop While Not Cell Is Nothing And Not Cell.Address = Adresse
   
End If
End With

End Sub


Private Sub CommandButton2_Click()
Dim L As Integer, C As Byte

With ListBox28
   
If .ListCount = 0 Then Exit Sub
       
       
For L = 1 To .ListCount
           
For C = 1 To 3
            Sheets('FicheArchive').Cells(L, C) = .List(L - 1, C - 1)
           
Next
       
Next

End With
   
End Sub


Private Sub CommandButton1_Click()
    Unload Me
End Sub

Bonne fin de journée
[ol]@+Thierry[/ol]
 
G

GHISLAIN

Guest
salut thierry

et bien je te remerci de t etre penché sur mon file de surtout de m avoir proposé une solution a mon probleme

solution que je vais mettre en application
et surtout d en comprendre toute les astuces

merci infiniment de votre aide

GHISLAIN
 

Statistiques des forums

Discussions
312 444
Messages
2 088 482
Membres
103 867
dernier inscrit
nykostinson