IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

erreur 438 (propriétés ou méthodes non gérées par cet objet)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut erreur 438 (propriétés ou méthodes non gérées par cet objet)
    bonjour

    j'avance difficilement sur mon application

    et ben qu'ayant consulté forum et cours je bloque

    contexte
    je suis dans une procédure publique qui me demande les articles relatifs à un bénévole

    (la compilation est bonne)

    l'erreur est en gras

    merci par avance

    j'ai fait d'autres essais avec un résultat identique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Rem ***********************************************************
    Rem  effacement benevole *****************
    
    Rem **********************************************************
    
    Public Sub DEL_BEN(npconcatene)
    '**************************************'******
    ' effacement  article bénévole (voir UserForm1) a comme conséquences
    '
    '     Effacement des compétences liées au bénévole table compétence  - bénévole
    'entrée : nom et prenom concatene
    '********************************************
    
    Dim l As Integer
    Dim i As Integer
    
    Dim inter As Script
    Dim np_concatene As String
    Dim nom As String
    Dim prenom As String
    Dim ws4 As Variant
    Dim h As Integer
    Dim np As Variant
    Dim res_verif As Boolean
    Dim ComboBox4 As Variant
    Set ws4 = Sheets("liste competences par personnes")
     'suppression de  la combobox des compétences par personnes
     Dim calcul_limite_table_compe_ben As Integer
     calcul_limite_table_compe_ben = ws4.Range("A" & Rows.Count).End(xlUp).Row
     calcul_limite_table_compe_ben = calcul_limite_table_compe_ben + 2
     Set ws4 = Sheets("liste competences par personnes")
    
    
    With ws4.ComboBox4
    For i = 0 To ws4.ComboBox4.ListCount - 1
             nom = ws4.Range("C")
             prenom = ws4.Range("D")
             np_concatene = (nom + prenom)
            If np_concatene = inter Then
            ws4.Rows(l).Deleted
            End If
     Next i
    End With
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, via une recherche ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut
    bonjour


    j'ai pas bien compris ta question

    je résume

    c'est l'utilisateur qui via une commande veut effacer ses données

    passe les infos

    la commande efface le fichier maitre bénévole (clé = nom et prénom concaténé)

    envoi une procédure pour faire le ménage dans table

    code compétence et nom et prénom concaténé


    on est dans la procédure pour effacer les articles ayant nom et prénom identiqques


    je veux faire une démo la semaine prochaine
    merci

    michel

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    Déjà, ou se situe le Combobox, sur une feuille, sur Usf, est-ce un controle "Activex" ?, sinon pour la rédaction de la procédure, il y a à voir, j'ai mis mes remarques à l'intérieur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Dim inter As Script 'ça je ne connais pas, je pense que c'est "String"
    '......
    '.....
    Dim ws4 As Variant 'je mettrais Dim ws4 As Worksheet
    Dim h As Integer
    Dim np As Variant
    Dim res_verif As Boolean
    Dim ComboBox4 As Variant 'là il faut m'expliquer
    Set ws4 = Sheets("liste competences par personnes")
     'suppression de  la combobox des compétences par personnes
     Dim calcul_limite_table_compe_ben As Integer
     calcul_limite_table_compe_ben = ws4.Range("A" & ws4.Rows.Count).End(xlUp).Row + 2 'voir changement
     'calcul_limite_table_compe_ben = calcul_limite_table_compe_ben + 2, à supprimer
     Set ws4 = Sheets("liste competences par personnes")
     
     
    With ws4.ComboBox4 'pourquoi faire, vu la ligne du dessous
      For i = 0 To ws4.ComboBox4.ListCount - 1
        nom = ws4.Range("C") 'Range C et quoi ?
        prenom = ws4.Range("D") 'Range D et quoi ?
        np_concatene = nom & prenom
        If np_concatene = inter Then
          ws4.Rows(l).Deleted 'à mon avis, encore une erreur
        End If
      Next i
    End With
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut erreur 438
    bonjour et merci

    +++ j'utilise les contrôles userform
    (pas active x)

    les questions


    où se situe le Combobox, sur une feuille =====> sur Userform2: (j"aurais 4 userform)
    pour info : le dialogue opérateur a été initié sur Userform1 qui gérait Combobox1 (table bénévole)

    je pars donc du principe qu'un seul Userform est actif à un instant t


    Il y a bien étanchéité sauf pour les données


    aie aie




    données bénévoles dans Userform1
    données compétences dans Userform2
    à venir données missions dans Userform3

    les échanges se limitent (toujours via module 3 (non classe)

    cela sert uniquement à vérifier la cohérence par rapport à Nom et prénom


    cdt Michel

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Réponds aux autres questions (intégrées dans le code) et comment est remplie la combobox, ou sont les données C et D, j'imagine mais sur quelles lignes ?, ....
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut suite erreur 438
    Voilà les infos

    cordialement


    nota : je ne fais du VBA que depuis cette application



    Dans le formulaire USERFORM2 j'ai 2 tables

    encore merci

    compétence
    Intitulé====écran======== disque

    code===== COMBOBOX3=== A
    libellé===== Textbox2===== B

    l'initialisation se fait dans la partie initialize via additem (les données sont actuellement figées)

    ===========compétence / bénévoles
    Intitulé ========== écran=========== disque
    concaténation=======COMBOBOX4======= A
    code + nom + prénom
    code============= Textbox4 ========== B
    Nom============= Textbox5 ========== C
    Prénom ========== Textbox6 ========== D
    Partage========== TextBox2========== E

    Pour B,C,D et E cela se fait en plus par interface homme/machine

    les = sont un paliatif pour la mise en forme dans le mail

    voir code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    ' **************************************
    ' Traitement des codes compétences   bénévoles*******************************
    '***************************************
     
     
     Private Sub ComboBox4_Change()
    Dim ligne As Long
    Dim i As Integer
    Dim chemin As String
    Dim ws4 As Variant
     
    Set ws4 = Sheets("liste competences par personnes")
     
    'Dim j As Integer
     
     
     
      If Me.ComboBox4.ListIndex = -1 Then Exit Sub
      ligne = Me.ComboBox4.ListIndex + 2
     
     
     
    ' **************************************
    ' Traitement des compétences - bénévoles
    ' nomprenom du bénévole code et  partage
    '***************************************
     Dim h As Integer
     
     
    With ComboBox4
      Rem        données code - bénévole
      Me.ComboBox4 = ws4.Cells(ligne, "A")   ' codenomprénom
      Me.TextBox4 = ws4.Cells(ligne, "B")    ' code
      Me.TextBox5 = ws4.Cells(ligne, "C")    ' Nom
      Me.TextBox6 = ws4.Cells(ligne, "D")    ' PréNom
      Me.TextBox2 = ws4.Cells(ligne, "E")    'partage
     
     End With
     
     
     
     
     
     
     ' **************************************
    ' tri   ********************************
    '***************************************
     
     
     
    Call TRIBENCOMP
     
     
     
     
    End Sub

    le tri se fait dans le module 3 (TRIBENCOMP)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    ublic Sub TRIBENCOMP()
    Rem ***********************************************************
    Rem   tri tabl des bénévoles- compétences ***********************************
    Rem ***********************************************************
     
    Dim ws4 As Worksheet
     
    Set ws4 = Sheets("liste competences par personnes")
     
    Dim calcul_limite_table_comp_ben As Integer
     
    With Worksheets("liste competences par personnes")
     calcul_limite_table_comp_ben = ws4.Range("A" & Rows.Count).End(xlUp).Row
    End With
     
     calcul_limite_table_comp_ben = calcul_limite_table_comp_ben + 1
     
     
    With Worksheets("liste competences par personnes")
        .Sort.SortFields.Clear
        .Sort.SortFields.Add key:=Range("A1:A" & calcul_limite_table_comp_ben), sorton:=xlSortOnValues, order:=xlAscending, dataoption:=xlSortNormal
            With .Sort
                .SetRange Range("A1:E" & calcul_limite_table_comp_ben)
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
        End With
    End With
    End Sub
    Je rajoute 2 points


    Lors de l'ajout d'une compétence (dans UserFrm2 un contrôle est fait via NP_VERIF (module 3)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Public Function verif_np(nom As String, prenom As String, res_verif As Boolean)
     
     
    Rem ***********************************************************
    Rem  paramètre reçu
    Rem         Nom prénom (NP)
    Rem
    Rem ***********************************************************
    Dim ws As Worksheet
    Set ws = Sheets("BASE De GESTION")
     
    Dim nom_ As String
    Dim prenom_ As String
     
    Dim np_concatene As String
    Dim valeur_cherchee As String
     
    Dim trouve As Variant
    Dim PlageDeRecherche As Variant
     
    np_concatene = (nom + prenom)
     
     
    'affectation de valeurs aux variables :
        'on cherche le contenu de np_concatene "
    valeur_cherchee = "np_concatene"
        'dans la première colonne de la feuille active
    Set PlageDeRecherche = ws.Columns(1)
    '*******************************
     
    'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
    Set trouve = PlageDeRecherche.Cells.Find(what:=np_concatene, LookAt:=xlWhole)
     
    'traitement de l'erreur possible : Si on ne trouve rien :
     
    res_verif = False
     
    If trouve Is Nothing Then
     
    res_verif = False
     
    Else
     
    res_verif = True
     
     
     verif_np = res_verif
     
      End If
     
     
     
    End Function

    dernir point


    le passage d 'une page à une autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    ' **************************************
    'multi page  ********************************
    '***************************************
    Private Sub CommandButton1_Click()
    Dim modal As Variant
    Dim rangs As String
    Dim rangi As Integer
    Dim UserForm As Object
     
    Dim nomUserForm As String
     
     
     
    rangs = InputBox("vous devez saisir le numéro de page (numéro de 1 à 4)")
    If (rangs = "1" Or rangs = "2" Or rangs = "3" Or rangs = "4") Then
                    rangi = rangs
                    rangi = rangi - 1
                     nomUserForm = "UserForm" & rangs
                     VBA.UserForms.Add(nomUserForm).Show False
                     Unload Me
                     Exit Sub
        Else
        rangs = InputBox("vous deviez saisir le numéro de page (numéro de 1 à 4); nous abandonnons la demande")
      End If
    fin:
     End Sub

  8. #8
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    voir mes remarques sur les procédures
    1ère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub ComboBox4_Change()
    Dim ligne As Long
    Dim i As Integer
    Dim chemin As String
    Dim ws4 As Worksheet 'à changer
    Dim h As Integer 'je préfère déclarer en début de procédure
     
    Set ws4 = Sheets("liste competences par personnes")
    If Me.ComboBox4.ListIndex = -1 Then Exit Sub
    ligne = Me.ComboBox4.ListIndex + 2
    ' **************************************
    ' Traitement des compétences - bénévoles
    ' nomprenom du bénévole code et  partage
    '***************************************
    With ComboBox4 'à quoi ça sert ? réponse : à rien dans le contexte
      'données code - bénévole
      Me.ComboBox4 = ws4.Cells(ligne, "A")   ' codenomprénom'cette ligne dans un évènement "Change ????
      Me.TextBox4 = ws4.Cells(ligne, "B")    ' code
      Me.TextBox5 = ws4.Cells(ligne, "C")    ' Nom
      Me.TextBox6 = ws4.Cells(ligne, "D")    ' PréNom
      Me.TextBox2 = ws4.Cells(ligne, "E")    'partage
    End With 'à supprimer si pas de With
     ' **************************************
    ' tri   ********************************
    '***************************************
    Call TRIBENCOMP
    End Sub
    dans la 2ème, je traduis ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Worksheets("liste competences par personnes")
     calcul_limite_table_comp_ben = ws4.Range("A" & Rows.Count).End(xlUp).Row
    End With
     
     calcul_limite_table_comp_ben = calcul_limite_table_comp_ben + 1
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ws4
     calcul_limite_table_comp_ben = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    End With
    et cette partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    With ws4
      .Sort.SortFields.Clear
      Sort.SortFields.Add Key:=.Range("A1:A" & calcul_limite_table_comp_ben), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
      With .Sort
        .SetRange Range("A1:E" & calcul_limite_table_comp_ben)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
      End With
    End With
    la fonction suivante dont je me demande l'utilité, quelques corrections
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Public Function verif_np(nom As String, prenom As String, res_verif As Boolean)
     
     
    Rem ***********************************************************
    Rem  paramètre reçu
    Rem         Nom prénom (NP)
    Rem
    Rem ***********************************************************
    Dim ws As Worksheet
    Dim nom_ As String
    Dim prenom_ As String
    Dim np_concatene As String
    Dim valeur_cherchee As String
    Dim trouve As Range 'modifié
    Dim PlageDeRecherche As Range 'modifié
     
    Set ws = Sheets("BASE De GESTION")
    np_concatene = nom & prenom 'modifié
    'affectation de valeurs aux variables :
        'on cherche le contenu de np_concatene "
    valeur_cherchee = "np_concatene"
        'dans la première colonne de la feuille active
    Set PlageDeRecherche = ws.Columns(1)
    '*******************************
     
    'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
    Set trouve = PlageDeRecherche.Cells.Find(what:=np_concatene, LookAt:=xlWhole)
     
    'traitement de l'erreur possible : Si on ne trouve rien :
    If trouve Is Nothing Then
      res_verif = False
    Else
      res_verif = True
    End If
     
    verif_np = res_verif
     
    End Function
    et la dernière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub CommandButton1_Click()
    Dim modal As Variant
    Dim rangs As String
    Dim rangi As Integer
    Dim UserForm As Object
    Dim nomUserForm As String
     
    rangs = InputBox("vous devez saisir le numéro de page (numéro de 1 à 4)")
    If (rangs = "1" Or rangs = "2" Or rangs = "3" Or rangs = "4") Then
      rangi = rangs 'à quoi ça sert
      rangi = rangi - 1 'à quoi ça sert
      nomUserForm = "UserForm" & rangs
      VBA.UserForms.Add(nomUserForm).Show False 'là je n'ai pas vérifié la bonne syntaxe
      Unload Me
      Exit Sub
    Else
      rangs = InputBox("vous deviez saisir le numéro de page (numéro de 1 à 4); nous abandonnons la demande")
    End If
    fin: 'à quoi ça sert
    End Sub
    nota : je ne fais du VBA que depuis cette application
    je le conçois, il faut prendre de bonnes habitudes et comprendre ce qu'on élabore
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut suitejj
    bonjour


    j'arrive à l afin (dernière procédure) à une erreur 438
    dans l'explorateur j'ai

    : ComboBox4 : Vide : Variant/Empty

    cordialement

    michel
    P
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    ublic Sub DEL_BEN(npconcatene)
    '**************************************'******
    ' effacement  article bénévole (voir UserForm1) a comme conséquences
    '
    '     Effacement des compétences liées au bénévole table compétence  - bénévole
    'entrée : nom et prenom concatene
    '********************************************
     
    Dim l As Integer
    Dim i As Integer
     
    Dim inter As Script
    Dim np_concatene As String
    Dim nom As String
    Dim prenom As String
    Dim ws4 As Variant
    Dim h As Integer
    Dim np As Variant
    Dim res_verif As Boolean
    Dim ComboBox4 As Variant
    Set ws4 = Sheets("liste competences par personnes")
     'suppression de  la combobox des compétences par personnes
     Dim calcul_limite_table_compe_ben As Integer
     calcul_limite_table_compe_ben = ws4.Range("A" & Rows.Count).End(xlUp).Row
     calcul_limite_table_compe_ben = calcul_limite_table_compe_ben + 2
     Set ws4 = Sheets("liste competences par personnes")
     
     
     
     
     
    'With ws4.ComboBox4
    For i = 0 To ws4.ComboBox4.ListCount - 1
             nom = ws4.Range("C")
             prenom = ws4.Range("D")
             np_concatene = (nom + prenom)
            If np_concatene = inter Then
            ws4.Rows(l).Deleted
            End If
     Next i
    'End With
    End Sub


    '
    j'ai testé les 2 cas avec et sans with

    vos commentaires

    PR1 Me.ComboBox4 = ws4.Cells(ligne, "A") ' codenomprénom'cette ligne dans un évènement "Change ???? à réfléchir
    PR2 ublic Function verif_np(nom As String, prenom As String, res_verif As Boolean) : à mon avis indispensable car les actions sur les compétences ne se font que si les données bénévoles sont présentes
    angi = rangs 'à quoi ça sert ===> à rien oubli
    rangi = rangi - 1 'à quoi ça ser ===> à rien oubli
    PR3
    fin: 'à quoi ça sert ===> à rien oubli

  10. #10
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    tu ne tiens pas compte des mes observations alors je ne peux rien faire, une dernière fois regardes cette partie et vérifies ce que j'ai écris dans d'autres post
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Dim inter As Script
    Dim np_concatene As String
    Dim nom As String
    Dim prenom As String
    Dim ws4 As Variant
    Dim h As Integer
    Dim np As Variant
    Dim res_verif As Boolean
    Dim ComboBox4 As Variant
    Set ws4 = Sheets("liste competences par personnes")
     'suppression de  la combobox des compétences par personnes
     Dim calcul_limite_table_compe_ben As Integer
     calcul_limite_table_compe_ben = ws4.Range("A" & Rows.Count).End(xlUp).Row
     calcul_limite_table_compe_ben = calcul_limite_table_compe_ben + 2
     Set ws4 = Sheets("liste competences par personnes")
    .........
    et d'autres erreurs....
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut erreur 438
    bonsoir

    j'avais pas vu les modifs et je m'excuse


    si celà avait été délibéré je l'aurais dit

    ========================================================================================================================================================================================J'ai bien pointé les modifications et je les ai testé (dimanche 13 h)

    Je pars toujours en erreur 438 ou 1004

    Je vous rappelle mon architecture



    - 4 pages avec chacune un formulaire (2 sont en service)
    - dialogue via le code joint mais les besoins de dialogue sont très restreints

    Concrètement

    - dans la page (formulaire 1)

    - l'opérateur demande l'effacement de toutes les information d'un bénévole
    - cela entraine l'effacement des données de base du bénévole
    -- l'envoi d'une procédure publique DELBEN afin que celle ci puisse nettoyer les information de l'abonné (présentes dans un combobox (de la page 2)

    -C"est dans cette procédure que le plantage se fait (non accebilité du formulaire 2)

    Les solutions diverses avec des solutions liées à Active X seraient trop destructurantes



    L'idéal serait d'accéder sur fichier fermé sur un fichier (lié à un contrôle formulaire)

    Mais celà ne semble pas fonctionner

    Si mon analyse était erronée et que vous puissiez me donner une solution simple je l'acceptrais avec joie

    Dans la négative, le cas étant marginal je le résoudrais par audit


    merci à celles (ceux) qui ont ou vont) passer du temps


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public Sub DEL_BEN(npconcatene)
    '**************************************'******
    ' effacement  article bénévole (voir UserForm1) a comme conséquences
    '
    '     Effacement des compétences liées au bénévole table compétence  - bénévole
    'entrée : nom et prenom concatene
    '********************************************
     
    Dim l As Integer
    Dim i As Integer
    ' UserForm2.Show False
    Dim inter As Script
    Dim np_concatene As String
    Dim nom As String
    Dim prenom As String
    Dim ws4 As Variant
    Set ws4 = Sheets("liste competences par personnes")
    Dim h As Integer
    Dim np As Variant
    Dim res_verif As Boolean
    Dim ComboBox4 As Variant
    Set ws4 = Sheets("liste competences par personnes")
     
     'suppression de  la combobox des compétences par personnes
     Dim calcul_limite_table_compe_ben As Integer
    ' calcul_limite_table_compe_ben = ws4.Range("A" & Rows.Count).End(xlUp).Row + 2   '
     
     ' Set ws4 = Sheets("liste competences par personnes")
     calcul_limite_table_compe_ben = ws4.Range("A" & Rows.Count).End(xlUp).Row
     calcul_limite_table_compe_ben = calcul_limite_table_compe_ben + 2
     Set ws4 = Sheets("liste competences par personnes")
     
     
     
    With ComboBox4
    For i = 0 To calcul_limite_table_compe_ben                       'ws4.ComboBox4.ListCount - 1
             nom = ws4.Range("C")
            prenom = ws4.Range("D")
             np_concatene = (nom & prenom)
             If np_concatene = inter Then
            ws4.Rows(l).Deleted
            MsgBox "article effacé"
            End If
     Next i
    End With
    End Sub

Discussions similaires

  1. [XL-2010] Erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet
    Par julien2929 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 24/05/2016, 09h37
  2. Réponses: 4
    Dernier message: 10/09/2015, 09h08
  3. erreur 438 : propriété ou méthode non gérée par cet objet
    Par saninx dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/08/2015, 13h38
  4. Erreur 438 propriété ou méthode non gérée par cet objet
    Par aba_tarn dans le forum VBA Access
    Réponses: 0
    Dernier message: 22/02/2008, 11h30
  5. Erreur:Propriété ou méthode non gérée par cet objet.
    Par nodogeid dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/05/2007, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo