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: Il m'affiche "Erreur de compilation: Type défini par l'utilisateur non défini".

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+

Rechercher des sujets similaires à "transfert userform classeur"