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 :

Bouton supprimer & inputbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2012
    Messages : 91
    Par défaut Bouton supprimer & inputbox
    bonjour le forum
    voilà j'ai un classeur avec plusieurs onglets j'ai creer un bouton pour annuler des opérations grace à une reference unique renseigné par un inputbox voilà le code qui ne marche pas !!
    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
    Private Sub CB_1_Click()
    'Déclaration des variables
    Dim Ref As String
    Dim l As Long
    Dim sh As Worksheet
     
    Do
    Ref = InputBox(prompt:="Saisir la référence de l'opération à supprimer", Title:="Saisie")
    Loop Until IsNumeric(Ref)
     
    With sh
      Select Case "feuil1"
     
           Case "recap"
            Case Else
     
    'Boucle de test pour evité les plantage en cas de saisie de lettre
     
     
    'Boucle de suppression des lettres en partant du bas du tableau
    'pour eviter les sauts si l'on part du début
    'Ne nécessite pas un tableau trié
    For l = Cells(65536, 3).End(xlUp).Row To 2 Step -1
        ' Test de la valeur en colone 3 pour suppression
        If Cells(l, 3).Value = (Ref) Then
            Rows(l).Select
            Selection.Delete (xlUp)
        End If
    Next l
     
    End Select
     
    End With
    End Sub
    mon soucis c'est que le code ne marche pas ça bloque au niveau de "With"
    l'objectif etant de chercher la reference dans les onglets du classeur sauf feuil1 et feuil2 (voir 2 autres onglets ) trouver cette reference et supprimer un selection cette macro supprime toute la ligne mais moi je veux supprimer seulement les cellules de la colonne A à la colonne Q et enfin le bouton annuler de l'inputbox ne fonctionne pas
    à l'aide svp

  2. #2
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,
    C'est logique que le [With sh] ne donne rien, sh n'est pas initialisé et ne pointe donc sur aucune feuille.
    Il faut d'abord initialiser cette variable avec un

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2012
    Messages : 91
    Par défaut
    Bonjour miss, merci pour ta reponse !! j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set sh = ThisWorkbook.Worksheets
     
     
    With sh
      Select Case "feuil1"
     
           Case "recap"
            Case Else
    mais ca ne fonctionne toujours pas !! erreur 13 incompatibilité de type !

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    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
    Private Sub CB_1_Click()
    Dim Ref As String
    Dim l As Long
    Dim Sh As Worksheet
        Do
            Ref = InputBox(prompt:="Saisir la référence de l'opération à supprimer", Title:="Saisie")
        Loop Until IsNumeric(Ref) Or Ref = ""
        'Si l'utilisateur clique sur le bouton Annuler, la fonction renvoie une chaîne de longueur nulle ("").
        If Ref <> "" Then
            For Each Sh In Worksheets
                If Sh.Name <> "feuil1" And Sh.Name <> "recap" Then
                    With Sh
                        For l = .Cells(65536, 3).End(xlUp).Row To 2 Step -1
                            If .Cells(l, 3).Value = Ref Then
                                .Range(.Cells(l, "A"), .Cells(l, "Q")).Delete (xlUp)
                            End If
                        Next l
                    End With
                End If
            Next Sh
        End If
    End Sub
    Cordialement.

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    regardes ce début de code et les commentaires, copies le ou il faut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    '.....
    For Each Sh In Worksheets
      If Sh.Name <> "Feuil1" And Sh.Name <> "Feuil2" Then
        With Sh
          Dl = .Range("E" & .Rows.Count).End(xlUp).Row 'c'est bien la colonne E ?
          tboriginal = .Range("A3:Q" & Dl) 'c'est bien de A à Q ?
          choix = Application.WorksheetFunction.CountIf(.Range("E3:E" & Dl), ">" & laDate) 'verifies la variable "laDate"
          MsgBox choix 'pour vérifier la valeur de "choix"
          If choix > 0 Then
    '......
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2012
    Messages : 91
    Par défaut
    à ce niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tbresult(y, x) = .Cells(L, x)
    ca bloque toujours erreur d'execution '9' l'indice n'appartient pas à la selection !!

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je suis en panne d'ordi, là je suis sur un autre, je ne pourrai plus répondre avant ce soir, en attendant, que donne le résultat de la msgbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    choix = Application.WorksheetFunction.CountIf(.Range("E3:E" & Dl), ">" & laDate) 'verifies la variable "laDate"
          MsgBox choix
    si tu ne me dis rien, je ne pourai pas deviner
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

  8. #8
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2012
    Messages : 91
    Par défaut
    slt Dom ca me donne le numero de la ligne de la premiere cellule ou la date est antèrieure à la date d'aujourd'hui "6" je te joint un fichier exemple ( tu m'a deja aidé sur ce projet je suppose que comprendra mieux)
    Fichiers attachés Fichiers attachés

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je répète :
    je suis en panne d'ordi, là je suis sur un autre
    donc pas question de regarder ton fichier mais tu dis
    ca me donne le numero de la ligne de la premiere cellule ou la date est antèrieure à la date
    non ça te donne logiquement le nombre de lignes où la date en E est supérieure à aujourd'hui.

    je ne pourrais voir ton fichier que ce soir, après 18 H, chez moi, sur la ligne qui plante, survoles avec ta souris pour voir les valeurs de y et x
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

Discussions similaires

  1. Bouton supprimant un enregistrement d'un autre formulaire
    Par froutloops62 dans le forum Access
    Réponses: 4
    Dernier message: 02/07/2007, 13h10
  2. [formulaire] bouton supprimer valeurs
    Par norfaulk dans le forum IHM
    Réponses: 9
    Dernier message: 18/06/2007, 15h11
  3. [MySQL] Bouton supprimer une ligne d'une base de donnée
    Par alex13 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/02/2007, 18h16
  4. création automatique de bouton "supprimer"
    Par houla! dans le forum ASP
    Réponses: 4
    Dernier message: 20/09/2006, 09h23
  5. Un bouton supprimer qui ne supprime pas... help!
    Par SpyesX dans le forum Access
    Réponses: 16
    Dernier message: 20/10/2005, 01h42

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