Transfert d'un UserForm vers un autre classeur ?
Bonjour à tous
Après de longues heures de recherche et une grande aide du forum, je suis enfin arrivé à faire fonctionner mon userForm!
Fier de moi, je l'importe dans mon classeur de sauvegarde.
Allez, c'est super, on passe au teste....
Satané code:
Le fautif:
'****************************************************************
' Procédure permetten d'extraire le contenu d'une ListBox et de
' l'affecter dans un autre feuille du classeur
'****************************************************************
Private Sub btnExtraction_Click()
' Déclaration des variables
Dim i, j As Integer
' On sélectionne la plage déjà existante et on efface l'historique.
Feuil2.Range(Cells(2, 1), Cells(100, 9)).Select
Selection.ClearContents
' On boucle toutes les lignes de la liste
For i = 1 To ListView1.Count
' On se positionne sur la feuille extraction
Feuil2.Cells(i + 1, 1) = ListView1.ListItems(i).Text
' On boucle toutes les colonnes de la liste
For j = 1 To 1
' On affiche le contenu de chacune des colonnes
Feuil2.Cells(i + 1, 2) = ListView1.ListItems(i).ListSubItems(1).Text
Feuil2.Cells(i + 1, 3) = ListView1.ListItems(i).ListSubItems(2).Text
Feuil2.Cells(i + 1, 4) = ListView1.ListItems(i).ListSubItems(3).Text
Feuil2.Cells(i + 1, 5) = ListView1.ListItems(i).ListSubItems(4).Text
Feuil2.Cells(i + 1, 6) = ListView1.ListItems(i).ListSubItems(5).Text
Feuil2.Cells(i + 1, 7) = ListView1.ListItems(i).ListSubItems(6).Text
Feuil2.Cells(i + 1, 8) = ListView1.ListItems(i).ListSubItems(7).Text ' Oups un émoticon farceur...
Feuil2.Cells(i + 1, 9) = ListView1.ListItems(i).ListSubItems(8).Text
Feuil2.Cells(i + 1, 10) = ListView1.ListItems(i).ListSubItems(9).Text
Feuil2.Cells(i + 1, 11) = ListView1.ListItems(i).ListSubItems(10).Text
Feuil2.Cells(i + 1, 12) = ListView1.ListItems(i).ListSubItems(11).Text
Feuil2.Cells(i + 1, 13) = ListView1.ListItems(i).ListSubItems(12).Text
Feuil2.Cells(i + 1, 14) = ListView1.ListItems(i).ListSubItems(13).Text
Feuil2.Cells(i + 1, 15) = ListView1.ListItems(i).ListSubItems(14).Text
Next j
End Sub
Private Sub Label6_Click()
End Sub
'***************************************************************
' Procédure permettant d'afficher l'enregistrement sélectionné Visible minute: 22:21
' dans les différent TextBox du formulaire
'***************************************************************
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
Il s'arrête sur cette dernière ligne...!
Pouvez-vous m'aider ?
Merci d'avance
Va falloir nous montrer la bête...
Regarde quand même d'abord dans les Références si tu n'en a pas une qui est déclarée absente.
Merci galopin01,
surtout de répondre présent à chacun de mes postes...!
Je t'avoue que j'ai regardé, mais ne sais pas trop ou chercher!
'****************************************************************
' Procédure permetten d'extraire le contenu d'une ListBox et de
' l'affecter dans un autre feuille du classeur
'****************************************************************
Private Sub btnExtraction_Click()
' Déclaration des variables
Dim i, j As Integer
' On sélectionne la plage déjà existante et on efface l'historique.
Feuil2.Range(Cells(2, 1), Cells(100, 9)).Select
Selection.ClearContents
' On boucle toutes les lignes de la liste
For i = 1 To ListView1.Count
' On se positionne sur la feuille extraction
Feuil2.Cells(i + 1, 1) = ListView1.ListItems(i).Text
' On boucle toutes les colonnes de la liste
For j = 1 To 1
' On affiche le contenu de chacune des colonnes
Feuil2.Cells(i + 1, 2) = ListView1.ListItems(i).ListSubItems(1).Text
Feuil2.Cells(i + 1, 3) = ListView1.ListItems(i).ListSubItems(2).Text
Feuil2.Cells(i + 1, 4) = ListView1.ListItems(i).ListSubItems(3).Text
Feuil2.Cells(i + 1, 5) = ListView1.ListItems(i).ListSubItems(4).Text
Feuil2.Cells(i + 1, 6) = ListView1.ListItems(i).ListSubItems(5).Text
Feuil2.Cells(i + 1, 7) = ListView1.ListItems(i).ListSubItems(6).Text
Feuil2.Cells(i + 1, 8) = ListView1.ListItems(i).ListSubItems(7).Text
Feuil2.Cells(i + 1, 9) = ListView1.ListItems(i).ListSubItems(8).Text
Feuil2.Cells(i + 1, 10) = ListView1.ListItems(i).ListSubItems(9).Text
Feuil2.Cells(i + 1, 11) = ListView1.ListItems(i).ListSubItems(10).Text
Feuil2.Cells(i + 1, 12) = ListView1.ListItems(i).ListSubItems(11).Text
Feuil2.Cells(i + 1, 13) = ListView1.ListItems(i).ListSubItems(12).Text
Feuil2.Cells(i + 1, 14) = ListView1.ListItems(i).ListSubItems(13).Text
Feuil2.Cells(i + 1, 15) = ListView1.ListItems(i).ListSubItems(14).Text
Feuil2.Cells(i + 1, 16) = ListView1.ListItems(i).ListSubItems(15).Text
J(ai rajouté cette lugne qui me semblait manquer...
Si tu veux voir mon classeur:
Le problème semble être la dll mscomctllib source de nombreux problèmes au gré des versions différentes d'Excel.
Dès que tu tapes ce mot dans Google tu as tout de suite compris...
Mon conseil serait d'abandonner la Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) et d'utiliser
Private Sub ListView1_Click() qui ne pose jamais de problème et permet d'arriver au même résultat...
Je tacherai de voir demain si je peux faire le changement.
A+
Le problème a été résolu par retraite8 ici:
https://forum.excel-pratique.com/excel/probleme-avec-mscomctllib-t95082-10.html?hilit=retraite8