Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Problème d'ouverture d'userform

  • Initiateur de la discussion Initiateur de la discussion piga25
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

piga25

XLDnaute Barbatruc
Bonjour le Forum
Je n'arrive pas à comprendre pourquoi j'ai cette erreur lors de l'ouverture de l'UserForm8

J'ai le code d'erreur suivant qui se produit :


Dans le code de l'UserForm8 , j'ai l'erreur, je pense à cette ligne : Set f = Sheets("feuil12")
Je ne comprends pas ma feuille est bien déclarée avec son nom natif ("feuil12") et non le nom de son onglet "Mouvement"
VB:
Private Sub UserForm_Initialize()
Dim f As Feuil12
  Me.Source.MultiSelect = fmMultiSelectMulti
  Set f = Sheets("feuil12")
  Me.ListBox1.List = Array("Inscription sur listing", "Départ PC pour effectuer mission", "Entrée dans la cavité", "Sortie de la cavité", "Retour PC pour signaler fin mission", "Quitte le site")
  Me.ListBox1.ListIndex = 0
  Me.Destination.Caption = Me.ListBox1.List(0)
  Me.Destination.TextAlign = fmTextAlignRight
  p = Me.ListBox1.ListIndex
  n = f.[A65000].Offset(, p * 3).End(xlUp).Row
  If n > 1 Then Me.Source.List = f.Range("A2:B" & n).Offset(, p * 3).Value Else Me.Source.Clear
  n = f.[D65000].Offset(, p * 3).End(xlUp).Row
  If n > 1 Then Me.Dest.List = f.Range("D2:E" & n).Offset(, p * 3).Value Else Me.Dest.Clear
  '---histo
  n = f.[V65000].End(xlUp).Row
  If n > 1 Then Me.Historique.List = f.Range("V2:Y" & n).Value Else Me.Historique.Clear
  Me.Source.Visible = False
  Me.b_prend.Visible = False
End Sub
 

Pièces jointes

Bonjour Dranreb, le Forum
je ne saisie pas bien, il faut que je remplace toutes les occurrences f. par sheets("feuil12") dans le module !!!!

Pourtant dans ce fichier là cela fonctionne. J'ai juste recopié l'userform et la feuille
 

Pièces jointes

Dernière édition:
RE

Remplace
Set f = Sheets("feuil12")
par
Set f = Sheets("Mouvement")

et supprime la déclaration
Dim f As Feuil12 dans UserForm_Initialize

VB:
Dim f As Worksheet


Private Sub UserForm_Initialize()
'Dim f As Feuil12
  Me.Source.MultiSelect = fmMultiSelectMulti
  Set f = Sheets("Mouvement")
  Me.ListBox1.List = Array("Inscription sur listing", "Départ PC pour effectuer mission", "Entrée dans la cavité", "Sortie de la cavité", "Retour PC pour signaler fin mission", "Quitte le site")
  Me.ListBox1.ListIndex = 0
  Me.Destination.Caption = Me.ListBox1.List(0)
  Me.Destination.TextAlign = fmTextAlignRight
  p = Me.ListBox1.ListIndex
  n = f.[A65000].Offset(, p * 3).End(xlUp).Row
  If n > 1 Then Me.Source.List = f.Range("A2:B" & n).Offset(, p * 3).Value Else Me.Source.Clear
  n = f.[D65000].Offset(, p * 3).End(xlUp).Row
  If n > 1 Then Me.Dest.List = f.Range("D2:E" & n).Offset(, p * 3).Value Else Me.Dest.Clear
  '---histo
  n = f.[V65000].End(xlUp).Row
  If n > 1 Then Me.Historique.List = f.Range("V2:Y" & n).Value Else Me.Historique.Clear
  Me.Source.Visible = False
  Me.b_prend.Visible = False

End Sub

Cdt
 
Bonjour.
il faut que je remplace toutes les occurrences f. par sheets("feuil12") dans le module !!!!
Non, remplace toutes les occurrences f. par Feuil12. dans le module
Feuil12 est en effet directement une expression Worksheet.

Remarque: d'habitude je renomme d'abord les objets Worksheet de la rubrique Microsoft Excel Objets par un nom mnémonique commençant par Wsh. Donc WshMvts au lieu de Feuil12 par exemple.
 
Re

Chris24 : Merci cela fonctionne.
Par contre ce que je ne comprends pas qu'elle est la différence entre:
Set f = Sheets("Mouvement") et Set f = sheets("feuil1")
Dranreb: je vais faire un essais comme tu le proposes
 
Sheets est une collection d'éléments de plusieurs types possibles, principalement Worksheet et Chart, ayant pour clés les textes des onglets dans Excel, qui seuls peuvent être précisés entre parenthèse pour y chercher un élément. Les noms d'objets Worksheet de la rubrique Microsoft Excel Objet sont des noms d'objets VBA qui représentent ces entités Excel, ne peuvent faire l'objet d'une recherche d'un nom variable mais seulement utilisé directement pour désigné un objet. Toutefois ces objets ont une propriété String CodeName en lecture seule qui reproduit le nom de l'objet VBA qui les représente.
 
Re,
Merci Dranreb, il faut absolument que je m'attache mieux saisir ces subtilités. J'ai encore beaucoup de boulot pour cela.

Il me reste juste un petit problème sur ce code situé dans l'userform8, cela ne met pas à jour la cellule N1 donc ne recopie rien dans la textbox

VB:
Private Sub CommandButton1_Click()
Concatene
UserForm2.TextBox4.Value = f.[N1].Value
Me.Main.Clear
Unload Me
UserForm2.Show
End Sub
Code:
Sub Concatene()
Dim Cel As Range, Co As Range
Dim Lg, i As Long
Application.ScreenUpdating = False
With Sheets("Mouvement")
k = [S1]
    If k > 0 Then
      For i = 2 To k + 1
      .Range("O" & i).Select
      ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[3],"" de "",RC[2],"" à "",RC[4])"
    Next i
    End If
Lg = [O65536].End(xlUp).Row
  
    With Sheets("Mouvement").Range("N1")
      .ClearContents
      For Each Cel In Range("O2:O" & Lg)
        If Cel <> "" Then
        .Value = .Value & Cel.Value & Chr(10)
        Else: Exit For
        End If
      Next Cel
    End With
    End With
End Sub
 

Pièces jointes

Re Chris
Je ne comprends pas pourquoi que cela ne fonctionne pas pour moi. C'est comme si le code concatene ne marche pas, alors que si je lance le code isolement cela va

Pour le problème d'ouverture de l'userform c'est résolue.
Pour l'autre problème je préfère ouvrir un nouveau fil.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
834
Réponses
3
Affichages
568
Réponses
1
Affichages
736
Réponses
10
Affichages
864
Réponses
5
Affichages
644
Réponses
7
Affichages
702
Réponses
3
Affichages
825
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…