Erreur sur RowSource

Y compris Power BI, Power Query et toute autre question en lien avec Excel
E
Enrico78
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 26 janvier 2020
Version d'Excel : 2016

Message par Enrico78 » 26 janvier 2020, 12:42

Bonjour,

je viens vers vous vous demander de l'aide ; quand que je lance mon fichier qui lance un formulaire d'accueil et que je clic sur un bouton pour lancer un autres formulaire, je reçois une erreur, si j'ai un autre fichier est ouvert, sinon tout fonctionne normalement.

l'erreur que je reçois est la suivante :
Erreur d'exécution '380": Impossible de définir la propriété RowSource. Valeur de propriété non valide.

Voici un exemplaire du code :
Private Sub ComboBoxTypeMateriel_DropButtonClick()
    Dim Materiels As Worksheet
     
   Set Materiels = ThisWorkbook.Sheets("Data")
    
   
    
    'Remplissage de la liste des type de prêt de matériel
    Me.ComboBoxTypeMateriel.RowSource = "TypesMateriel"
End Sub
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'041
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 janvier 2020, 12:59

Bonjour et bienvenue,

as-tu un fichier ?

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
E
Enrico78
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 26 janvier 2020
Version d'Excel : 2016

Message par Enrico78 » 26 janvier 2020, 13:39

Bonjour,

Je ne peux envoyer le document, il y a des données confidentiel.

Mais je peux divulgué le code.

Formulaire principal
Private Sub Bt_Admin_Click()
    Unload Me
    Administration.Show
End Sub

Private Sub Bt_Ajouter_Click()
    'Accès au formulaire pour un nouveau prêt de matériel
    Unload Me
    NewPretMateriel.Show
End Sub

Private Sub Bt_Archive_Click()
    'Accès au formulaire des archives de prêt de matériel
    Unload Me
    ArchivesPret.Show
End Sub

Private Sub Bt_Inventaire_Click()
    Unload Me
    InventairePret.Show
End Sub

Private Sub Bt_Modifer_Click()
    'Accès au formulaire des modfications de prêt de matériel
    Unload Me
    ModifPret.Show
End Sub

Private Sub Bt_Quitter_Click()
    'Quitte le formulaire des nouveaux prêt de matériel
    Unload Me
    
    ActiveWorkbook.Save
    Application.Quit
End Sub

Private Sub Bt_Statistique_Click()
    'Accès aux statistiques des de prêt de matériel
    Unload Me
    StatMateriel.Show
End Sub
Private Sub UserForm_Activate()
    'Mise en une dimension exact
    Height = 380
    Width = 580
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Cancel = CloseMode = 0
End Sub
Formulaire secondaire qui pose le problème
Private Sub Bt_Quitter_Click()
    'Quitte le formulaire des nouveaux prêt de matériel
    Unload Me
    Application.Quit
End Sub

Private Sub Bt_Retour_Click()
    'Revient au formulaire général
    Unload Me
    PretMateriel.Show
End Sub

Private Sub Bt_Enregistrement_Click()
    'Enregistrement d'un nouveau prêt de matériel
    Dim Prets As Worksheet
    Dim ligne As Long
    Dim DateEcheance As Date
'    Dim NumEnregistrement As Integer, NumReference As Integer
    
    'Accès par un lien vers la feuille "Liste pret"
    Set Prets = ThisWorkbook.Sheets("Liste Pret")
    
'    NumEnregistrement = Sheets("Liste Pret").Range("m" & ligne)
'    NumReference = Sheets("Liste Pret").Range("n" & ligne)
'
'    MsgBox NumEnregistrement
'    MsgBox NumReference
    
    
    'Calcul de la date de l'échéance du prêt
    DateEcheance = Application.WorksheetFunction.WorkDay(Date, 15, JoursFeries)
    
    'Ce position sur la dernière ligne et après le dernier enregistrement effectuer
    ligne = Sheets("Liste Pret").[A1].End(xlDown).Row + 1
    
    'Enregistrement d'un nouveau prêt de matériel
    If MsgBox("Voulez-vous enregistrer le prêt de matériel ?", vbYesNo + vbQuestion, "Demande de confirmation") = vbYes Then
        Sheets("Liste Pret").Range("a" & ligne) = TextBoxIndetifiant
        Sheets("Liste Pret").Range("b" & ligne) = TextBoxPrenomNom
        Sheets("Liste Pret").Range("c" & ligne) = TextBoxMail
        Sheets("Liste Pret").Range("d" & ligne) = ComboBoxEntiter
        Sheets("Liste Pret").Range("e" & ligne) = TextBoxDemandeRITM
        Sheets("Liste Pret").Range("f" & ligne) = ComboBoxTypeMateriel
        Sheets("Liste Pret").Range("g" & ligne) = ComboBoxPortable
        'Enregistre le prêt de l'odinateur dans le tableau de la liste de pc portalbe en prêt
        Call PretPortable
        Sheets("Liste Pret").Range("h" & ligne) = TextBoxDateJour
        Sheets("Liste Pret").Range("i" & ligne) = DateEcheance
        Sheets("Liste Pret").Range("l" & ligne) = TextBoxComplementaire
        
        Sheets("Liste Pret").Range("m" & ligne).Select
        Selection.FillDown
        Sheets("Liste Pret").Range("n" & ligne).Select
        Selection.FillDown
        
    End If
    
    'Enregistre le fichier
    ActiveWorkbook.Save
    
    Unload Me
    PretMateriel.Show
End Sub

Private Sub TextBoxDateJour_Change()
    'Date du jour mise dans le champ et désactivation
    TextBoxDateJour.Enabled = False
End Sub

Private Sub UserForm_Activate()
    'Mise en une dimension exact
    Height = 400
    Width = 630
End Sub

Private Sub UserForm_Click()
    'Activation de la ComboBox
    Me.ComboBoxPortable.Enabled = True
    Me.ComboBoxPortable.BackColor = RGB(255, 255, 255)
End Sub

Private Sub UserForm_Initialize()
    Dim DateEcheance As Date
    
    'Date du jour
    DateDuJour = Now()
    TextBoxDateJour = Format(DateDuJour, "DD/MM/YYYY")
    
    DateEcheance = Application.WorksheetFunction.WorkDay(Date, 15, JoursFeries)
    
End Sub
Private Sub ComboBoxEntiter_DropButtonClick()
    Dim Entites As Worksheet
    
    Set Entites = ThisWorkbook.Sheets("Data")
    
    'Remplissage de la liste des entiters
    Me.ComboBoxEntiter.RowSource = "Entites"			'Erreur afficher
End Sub
Private Sub ComboBoxTypeMateriel_DropButtonClick()
    Dim Materiels As Worksheet
    Dim Book As Workbooks
    
    'Set Book = Application.Workbooks("Projet Thor (version 10-3)")
    Set Materiels = ThisWorkbook.Sheets("Data")
    'Workbooks("Projet Thor (version 10-3)").Worksheets("Data").Activate
   
    
    'Remplissage de la liste des type de prêt de matériel
    Me.ComboBoxTypeMateriel.RowSource = "TypesMateriel" 		'Erreur afficher
End Sub

Private Sub ComboBoxPortable_DropButtonClick()
'Désactivation du choix du portable disponible si le type de matériel est diférent de "Portable"
    If Me.ComboBoxTypeMateriel = "Portable" Then
        'activation de la ComboBox
        Me.ComboBoxPortable.Enabled = True
        'Vérifie et remplie la liste des ordinateurs mise à disposition
        Call PortableKiosque
        Me.ComboBoxPortable.RowSource = "ListePortableDispo"
    Else
        'Désactivation de la ComboBox
        Me.ComboBoxPortable.Enabled = False
        Me.ComboBoxPortable.Value = ""
        Me.ComboBoxPortable.BackColor = RGB(0, 192, 192)
    End If
End Sub


Sub PretPortable()
    Dim gestion As Worksheet
    Dim ValeurCombobox As String
    Dim ligne As Integer
    Dim Kiosque As Integer
    Dim Pret As Integer
       
    'Accès par un lien vers la feuille "Gestion portable"
    Set gestion = ThisWorkbook.Sheets("Gestion portable")
     
    'Récupère la valeur dans le choix de l'ordinateur portable mise en prêt
    ValeurCombobox = ComboBoxPortable.Value

    'Se positionne dans le tableau "ListePortable" sur la ligne de l'ordinatuer pourtable mise à disposition
    ligne = Range("D1:F11").Find(ValeurCombobox, lookat:=xlWhole).Row
    Kiosque = Range("D1:F11").Find(ValeurCombobox, lookat:=xlWhole).Column + 1
    Pret = Range("D1:F11").Find(ValeurCombobox, lookat:=xlWhole).Column + 2
    
    If ValeurCombobox <> "" Then
        'mettre la valeur dans la cellule "kiosque" de vrai à faux et dans la cellule "prêt" de faux à vrai
        With Sheets("Gestion portable")
            Sheets("Gestion portable").Cells(ligne, Kiosque) = ""
            Sheets("Gestion portable").Cells(ligne, Pret) = True
        End With
    End If
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Cancel = CloseMode = 0
End Sub
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'041
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 janvier 2020, 16:42

Enrico78 a écrit :
26 janvier 2020, 13:39
Je ne peux envoyer le document, il y a des données confidentiel.
je comprends ... mais peut-être un fichier allégé où tu enlèves toutes les données confidentielles ? sinon cela revient à ce que l'on recrée un fichier de toute pièce en devinant les onglets et les userforms pour déterminer les corrections !

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
E
Enrico78
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 26 janvier 2020
Version d'Excel : 2016

Message par Enrico78 » 26 janvier 2020, 17:50

Je vais partager le document après avoir retirer tout ce qui est de confidentiel, le mot de passe pour le déverrouillage est "Test".

Vous constaterez que le fichier s'ouvre et l'on peux tout faire, mais si il y a un autre fichier excel d'ouvert vous aurez l'erreur que je parle plus haut.
Model type.xlsm
(219.24 Kio) Téléchargé 5 fois
Avatar du membre
Jean-Paul
Membre habitué
Membre habitué
Messages : 71
Appréciations reçues : 30
Inscrit le : 17 mai 2018
Version d'Excel : Office 365 FR

Message par Jean-Paul » 26 janvier 2020, 18:02

Salut Enrico, le fil

N'aurais- tu pas dans le second fichier le même nom défini, si c'est le cas mets le nom du classeur avec.
Le savoir n'a de valeur que s'il est partagé.

:btres:
E
Enrico78
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 26 janvier 2020
Version d'Excel : 2016

Message par Enrico78 » 26 janvier 2020, 18:05

non justement, l'erreur apparaît avec quelque soit le deuxième fichier ouvert.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'041
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 27 janvier 2020, 02:08

Qu'il y ait ou non un autre fichier ouvert, j'ai une erreur (sur autre chose) qui m'empêche de continuer.
Difficile de poursuivre car le code macro est protégé.

D'un point de vue syntaxique, ne faut-il pas plutôt écrire Me.ComboBoxTypeMateriel.RowSource = Range("TypesMateriel").Address
Désolé je ne suis pas un spécialiste des userform.
Modifié en dernier par Steelson le 27 janvier 2020, 17:12, modifié 1 fois.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'398
Appréciations reçues : 163
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 27 janvier 2020, 06:12

bonjour,
Tu peux supprimer la Private Sub ComboBoxTypeMateriel_DropButtonClick() (en totalité)

à la place ajouter dans le Private Sub UserForm_Initialize mettre (à la fin)
Private Sub UserForm_Initialize()
    Dim DateEcheance As Date
    'Date du jour
    DateDuJour = Now()
    TextBoxDateJour = Format(DateDuJour, "DD/MM/YYYY")
    DateEcheance = Application.WorksheetFunction.WorkDay(Date, 15, JoursFeries)
    'Initialisation du combo :
    Me.ComboBoxTypeMateriel.RowSource = ThisWorkbook.Sheets("Data").Range("TypesMateriel").Address(external:=True)
End Sub
A+
Model type.xlsm
(222.8 Kio) Téléchargé 6 fois
1 membre du forum aime ce message.
Question portant sur VBA : Je ne répond pas si la question ne comporte pas le classeur KIVABIEN avec.
E
Enrico78
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 26 janvier 2020
Version d'Excel : 2016

Message par Enrico78 » 27 janvier 2020, 17:46

Bonsoir, merci pour votre aide.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message