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 :

Gestion des erreurs dans Application.Inputbox avec Range


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut Gestion des erreurs dans Application.Inputbox avec Range
    Bonjour,

    J'ai écrit le code suivant afin de sélectionner une ligne (filtrée auparavant) afin de la recopier dans une nouvelle feuille.
    La cellule contenant la quantité peut être modifié en fonction de la quantité rentre dans une textbox.
    Mon problème et que même si je sélectionne bien une plage de cellule, l'objet parait toujours vide. Et donc la macro s'arrête.
    Le code est dans un userform.

    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
    Sub selection1()
        Dim i, Nbreligne, Qty As Integer
         Dim P, Vers As Range
     
        Sheets("ConfigCL").Range("A1").Select
     
       Qty = 0
     
        On Error Resume Next
        Application.DisplayAlerts = False
            Set P = Application.InputBox("Sélectionnez une cellule ou une plage :", Type:=8)
            'MsgBox P.Address
        On Error GoTo 0
            Application.DisplayAlerts = True
            If P Is Nothing Then MsgBox "Sélection annulée"
                Exit Sub
     
        Nbreligne = Sheets("Sheet8").UsedRange.Rows.Count
        i = Nbreligne + 1
     
        Set Vers = Worksheets("Sheet8").Cells(i, 1)
            P.Copy
            Vers.PasteSpecial (xlPasteValues)
            Application.CutCopyMode = False
     
        Qty = UserForm1.TextBoxqty.Value
     
        If Qty <> 0 Then
            Sheets("Sheet8").Cells(i, 9) = Qty
     
        End If
     
    UserForm1.TextBoxqty.Value = ""
     
    End Sub

    J'utilise Excel 2010 sous XP.
    Merci pour votre aide

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour,

    comme tu as écris ton code le Exit sub n'est pas conditionné ..

    supprime le MsgBox ... ou si tu veux conditionné plusieurs actions le plus simple c'est de mettre cela sur plusieurs lignes..:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if Condition Then
      Action1
      Action2
    End if

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 13
    Points : 9
    Points
    9
    Par défaut
    Merci bbil,

    De plus en voyant ton code:

    Bonjour,

    comme tu as écris ton code le Exit sub n'est pas conditionné ..

    supprime le MsgBox ... ou si tu veux conditionné plusieurs actions le plus simple c'est de mettre cela sur plusieurs lignes..:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    1 if Condition Then
    2 Action1
    3 Action2
    4 End if
    je me suis apperçu que j'avais oublié de cloturer ma condition en omettant "End if".
    Après rajout, Miracle, ça marche.
    Merci pour m'avoir ouvert les yeux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AIX] Gestion des erreurs dans un script
    Par f-k-z dans le forum AIX
    Réponses: 2
    Dernier message: 17/07/2007, 08h45
  2. [vba-e] Gestion D'erreur Dans Un Inputbox
    Par KKshi666 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/05/2007, 09h39
  3. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  4. Gestion des erreurs dans un TRIGGER
    Par SDU64 dans le forum DB2
    Réponses: 1
    Dernier message: 18/05/2006, 09h51
  5. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20

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