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 :

Supprimer une feuille en fonction du resultat d'une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 32
    Points
    32
    Par défaut Supprimer une feuille en fonction du resultat d'une cellule
    bonjour,

    Voila, j'ai un petit problème. J'ai une cellule avec une liste de choix. Deux choix sont possibles : "Yes" ou "No". J'aimerais que si l'utilisateur choisie "No", la feuille qui correspond soit supprimé... J'ai déjà posé cette question dans un autre topic : http://www.developpez.net/forums/d78...le-meme-temps/
    Le problème est que je n'arrive pas à adapter le code de Krovax à mon cas. Je n'y met pas de la mauvaise volonté pourtant.

    Je pense que cela vient du fait que dans le code de Krovax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i = derniereligne to 2 step -1
    if cells(i,2)="No" then
    sheets(cells(i,1)).delete
    rows(i).delete 'supprime la ligne
    end if
    next i
    il fallait jouer avec la dernière ligne. L'inconvénient est que je n'arrive pas à trouver comment faire pour que ce soit la cellule et non la ligne qui soit pris en compte.

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bon dans ton code il manque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       DerniereLigne = Range("A65536").End(xlUp).Row
    La tu as la dernière ligne de la colonne A


    Ensuite ta dernière phrase je ne la comprend pas la m^me formuler autrement ca m'arrangerais bien
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 32
    Points
    32
    Par défaut
    Ce que je voulais dire, c'est que dans mon cas, la ligne ne m'importe pas, c'est la cellule qui compte. Je travaille sur les cellules D16 à D19.



    Si par exemple pour le "Recycled Content", on Choisit "No", la feuille de calcul nommé "Recycled Content" doit être supprimé.... C'est plus clair ?

  4. #4
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Regarde le lien il y a une dizaine de méthode fait des test et lit les commentaire dans les exemple c'est toujours la colonne A toi tu veux la D ensuite trouve la méthode qui te correspond
    Si tu as la ligne et la colonne tu as la cellule la colonne c'est la D

    Après si tu veux supprimer une cellule et non un ligne utilise l'enregistreur de macro.
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 32
    Points
    32
    Par défaut
    Voila ce que j'ai essayé de faire, mais on me dit qu'il y a incompatibilité de type à la première ligne... Je comprends pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 16 To 18 Step 1
                    If Cells("D" & i) = "No" Then
                        Sheets(Range("C" & i)).Delete
                        'Rows(i).Delete 'supprime la ligne
                    End If
                Next i
            MsgBox ("D" & i)
    End If

  6. #6
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For i = 16 To 18 Step 1
       If Cells("D" & i) = "No" Then
            Sheets(Range("C" & i).text).Delete
            'Rows(i).Delete 'supprime la ligne
       End If
    Next i
    Essaye celui la j'avais une erreur dans le précédent et je pense que le message box ne fera que t'ennuyer
    ps : il y avait un end if de trop
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 42
    Points : 32
    Points
    32
    Par défaut
    J'avais déjà essayer ce que tu viens de me dire et il me dit toujours incompatibilité de type. D'après le débogage, ça vient de la première ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells("D" & i) = "No" Then
    Je comprends vraiment pas.... est ce que ça peut être du au fait qu'il y ait une liste dans ma cellule ? J'en suis à formuler toutes les hypothèses là
    Le End If, il est pas de trop, j'ai mis cette macro dans un bouton... Ca peut venir de là ?

  8. #8
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    J'ai pas fait atention mais tu as tou casser mon code et fait nimporte quoi

    On utilise soit
    range avec une chaine de caractère pour les adresse, porrsibilité de faire de la concaténation avec le &
    Soit
    avec i numéro de ligne et j numéro de colonne
    MAIS PAS
    Arrête la bidouille quand tu tombe sur une commande que tu ne connais pas regarde l'aide pour apprendre a l'utiliser il n'y a que comme ca que tu progressera!
    Tu positionne ton curseur sur la commande et tu appui sur F1

    Bon maintenant que ca c'est fait je vais comme ouskel'n'or faire mes valises, une fois que j'aurais retrouvé mon ciré
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

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

Discussions similaires

  1. Déplacement entre feuille en fonction du résultat d'une liste
    Par l'instrumentiste dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/06/2010, 12h46
  2. Supprimer une feuille en fonction de son nom
    Par FCL31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/09/2009, 17h34
  3. Changement dans une feuille en fonction de 2 valeurs
    Par delph_le dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/06/2008, 15h24
  4. Supprimer une colonne d'une feuille si elle est vide dans une autre
    Par xave dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/02/2008, 14h05
  5. Code VBA fonction du resultat d'une requête
    Par Nessie37 dans le forum VBA Access
    Réponses: 10
    Dernier message: 20/02/2008, 13h21

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