XL 2013 (resolu)vider listview dans 2 feuilles????

grisan29

XLDnaute Accro
bonjour a tous et toutes
dans le cadre de modification d'un test de classeur de facturation j'ai une listview qui se remplie au fur et a mesure de ce que l'on y met, la seule chose est qu'elle se vide toujours dans la feuille"facture"a l'aide du bouton "valider" je pense que le contenu de la listview n'as rien a voir avec ce que je veux faire
en fait a l'initialisation de l'useform un label prends le nom qui est dans l'entête de la feuille
c'est très facile de donner au label soit "facture" soit "devis" sans référence a la feuille
la seule chose est comment faire que le bouton "valider" choisisse la feuille où vider la listview
Code:
Private Sub CBvalide_Click()
'vider la listview
    Dim L As Long, C As Byte
    Dim LargeurCol As Single, MaHauteur As Single, Lg_Origine As Single
    Application.ScreenUpdating = False
  
    With Sheets("Facture")
        L = .Range("B65536").End(xlUp).Row
'.............suite
    End With
    Application.ScreenUpdating = True
End Sub

je pense qu'il faut passer par if et end if voir if ....then voir with end with

plus facile dire qu'a faire au sujet du label
Code:
If LBnomfeuil.Caption = Sheets("facture").Range("d1").Value Then
  LBnomfeuil.Caption = Sheets("facture").Range("d1").Value
  End If
  If LBnomfeuil.Caption = Sheets("devis").Range("d1").Value Then
  LBnomfeuil.Caption = Sheets("devis").Range("d1").Value
  End If
 
Dernière édition:

Paf

XLDnaute Barbatruc
Bonjour grisan29,

pas trop sûr d'avoir compris.

Si c'est le Label qui définit Devis ou Facture (et que les feuilles Devis et Facture existent), dans Private Sub CBvalide_Click() :
Code:
....
With Sheets(Label1.Caption) ' adapter le nom du Label
        L = .Range("B65536").End(xlUp).Row
'.............suite
End With
.....

A+
 

Chris24

XLDnaute Impliqué
Bonjour

Si j'ai bien compris mais pas sûr
avec un select case

Private Sub CBvalide_Click()
'vider la listview
Dim L As Long, C As Byte
Dim LargeurCol As Single, MaHauteur As Single, Lg_Origine As Single
Application.ScreenUpdating = False

Select Case LBnomfeuil.caption
Case "Facture"
With Sheets("Facture")
L = .Range("B65536").End(xlUp).Row
'.............suite
End With
Case "Devis"
With Sheets("Devis")
L = .Range("B65536").End(xlUp).Row
'.............suite
End With
End Select
Application.ScreenUpdating = True
End Sub

Cordialement
 

grisan29

XLDnaute Accro
bonjour Paf, chris24

merci de vos réponses donc pour chris24, il faudrait que je recopie le code 2 fois pour valider

oui c'est le label qui va définir si c'est un devis ou une facture qui vas être créer et le nom des feuilles existe tout comme "D1"
mais je vous ai mis le code du label qui ne s'initialise pas
 

Paf

XLDnaute Barbatruc
Re et bonjour Chris24,

Sans classeur pas facile de suivre !!!

le Label est initialisé à quel moment ?
pourquoi l'initialiser s'il faut le changer par la suite (autant l'initialiser une bonne fois) ?
Sait-on au lancement de l'USF si on va faire un Devis ou une Facture ?
qu'est ce qui va déterminer si c'est Devis ou Facture?
Qu'est qu'on trouve en D1 des feuille Devis ou Facture ?

A+
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Pourquoi ne définiriez vous pas une variable globale Private FDest As Worksheet que vous initialiseriez par un Set dès la UserForm_Initialize ?
Ou mieux par une méthode à laquelle vous passeriez la feuille en paramètre, et que vous utiliseriez à la place du Show.
 

grisan29

XLDnaute Accro
Bonjour dranreb ,chris24, paf
j'ai essayer autrement mais c'est pareil le label prends le nom de devis mais pas facture, pourtant ce sont 2 procédure différente mais pour un userform
je vous joint cet essai ou la listview ne se remplie pas car rien a y mettre et où j'ai mis les 2 feuilles
 

Paf

XLDnaute Barbatruc
Re tous,

Dans l'USF ouverture, dans Private Sub CmB_devis_Click() et Private Sub CmB_Facture_Click(), inverser les deux lignes

Code:
.Show
.LBnomfeuil.Caption = ...

sinon l'usf UFgestion est affiché avant que le Label soit initialisé

dans l'usf UFgestion dans Private Sub UserForm_Initialize(), supprimer la ligne:
Code:
LBnomfeuil.Caption = "DEVIS"

et ça devrait fonctionner.

A+
 

grisan29

XLDnaute Accro
bonsoir Paf
dans le classeur que j'ai mis au post 7 il y a le code du post 2 , je vais enlever les écritures des feuilles pour voir
mais j'ai un bug avec
Code:
 With Sheets(LBnomfeuil.Caption)
car LBnomfeuil n'est pas une sheets mais un label
 
Dernière édition:

grisan29

XLDnaute Accro
bonsoir a tous
je vais vous envoyer un fichier un peu plus élaboré,
c'est a dire que le bouton envoi une partie de la listview sur la feuille facture et ne fait de différence si le label écrit DEVIS où FACTURE , la listview se rempli des données dans la base
ce classeur est réduit de beaucoup mais fonctionne pour les test
 

Pièces jointes

  • Copie de testv1.xlsm
    44.4 KB · Affichages: 43

grisan29

XLDnaute Accro
Bonsoir Dranreb et le forum
ce que je veux , pour l'instant le bouton est sur la feuille pour les besoins du test
donc le clic sur le bouton ouvre l'userform
mais ce que je voudrais c'est que le bouton sur l'userform vide la
listview soit sur la feuille "devis" soit sur la feuille "facture" en fonction du nom qu'il a sur le label
sur ce classeur il y a une combobox car je n'ai réussi autrement a charger la listview mais une fois réussi cette partie il n'y en aura plus
 

Statistiques des forums

Discussions
312 338
Messages
2 087 399
Membres
103 537
dernier inscrit
alisafred974