Message erreur : Objet requis userform

Résolu
julien -  
 julien -
Bonjour,

Après avoir regardé de nombreux forums et testé différentes solutions je suis entrain de baisser les bras ^^

Ci - joint mon code macro ==> http://www.cjoint.com/c/FBmn1pMuExp

J'aimerais lorsqu'un utilisateur ferme la fenétre ( par la croix ou le bouton annuler ) l'opération s'éxécute , actuellement lorque l'on appuie sur croix ou annuler un message d'erreur apparait : " Objet requis "

Merci de votre aide

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Classeur sans UserForm ??????????????????,

    code dans un module ????????????????????

    ai apporte quelques modif quand meme
    Sub Selection_des_données()
    
        Dim Cellules As Range           ' Déclaration de la variable Cellules
        Dim Rep As Integer                ' Déclaration de la variable Rep
        Dim Rep2 As Integer              ' Déclaration de la variable Rep
     
        i = 2
        On Error Resume Next
        Set Cellules = Application.InputBox(prompt:=" Cliquez sur le (ou les) numeros des lignes à conserver ( Maintenir CTRL) ", Type:=8)     ' Questionnement sur lignes à conserver
        If Err.Number <> 0 Then
            MsgBox "Selection annulee"
            Exit Sub
        End If
        On Error GoTo 0
        Application.ScreenUpdating = False          ' Désactivation de l'actualisation de l'écran pour exécution plus rapide
        
        ' Vérification de présence de données pour sélectionner la
        With Sheets("Sélection_données")          ' Sur la feuille 3
            PCV = .Range("A" & Rows.Count).End(xlUp).Row + 1        'premiere cellules vide colonne A
            If PCV < 2 Then PCV = 2     ' Si la variable est inférieure à 2 elle prend la valeur 2
            Cellules.Copy .Cells(PCV, 1)    ' Copie de lignes
        End With        ' Fin du test
        
        Sheets("Données_triées").Select           ' Sélection de la feuille 2
        Rep = MsgBox("Voulez-vous conserver d'autres lignes ?", vbYesNo + vbQuestion, "mDF XLpages.com")        ' Message pour savoir si il y a d'autres lignes a sélectionner
        If Rep = vbNo Then
            Sheets("Sélection_données").Select            ' Sélection de la feuille 2
            Columns.HorizontalAlignment = xlCenter          ' Centrer toutes les colonnes
        Else
            Rep2 = MsgBox(" Pour ce moteur ?", vbYesNo + vbQuestion, "mDF XLpages.com")
            If Rep2 = vbYes Then
                On Error Resume Next
                Set Cellules = Application.InputBox(prompt:=" Cliquez sur le numero des lignes à conserver ", Type:=8)     ' Réitération de la question de selection de ligne
                If Err.Number <> 0 Then
                    MsgBox "Selection annulee"
                    Exit Sub
                End If
                On Error GoTo 0
                Application.ScreenUpdating = False          ' Désactivation de l'actualisation de l'écran pour exécution plus rapide
                With Sheets("Sélection_données")          ' Sur la feuille 3
                    PCV = .Range("A" & Rows.Count).End(xlUp).Row + 1        'premiere cellules vide colonne A
                    If PCV < 2 Then PCV = 2     ' Si la variable est inférieure à 2 elle prend la valeur 2
                    Cellules.Copy .Cells(PCV, 1)    'copie de lignes
                End With
            End If
        End If           ' Fin de la boucle
    End Sub
    0
    1. julien
       
      WAouuuuh , vraiment rapide et efficace tu as déjà résolue ma question :) Merci beaucoup , à bientôt !!!!!
      0