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 :

Fonction effacer valeur Cellule [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Formation à l'informatique
    Inscrit en
    Novembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Formation à l'informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 29
    Par défaut Fonction effacer valeur Cellule
    Bonjour j'ai une fonction, j'ai une fonction qui permet d'effacer des informations dans des cellules, mais toutes les informations sont effacer de la colonne concerné, je voudrais garder, les titres des sections des tableaux

    Voila ce que ma fonction fait

    Moi, je voudrai que ma fonction fasse ça


    Voici mon 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
    Sub Effacer_Imprimer()
    Dim Monmessage, MonStyle, MonTitle, Monaide, Mavaleur, Response, Machaine
    Monmessage = "Souhaitez-vous supprimer les informations contenues dans les tableaux ?"    ' Définit le message.
    MonStyle = vbYesNo + vbQuestion    ' Définit les boutons.
    MonTitle = "Informations"    ' Définit le titre.
    Monaide = "DEMO.HLP"    ' Définit le fichier d'aide.
    Mavaleur = 1000    ' Définit le contexte de la rubrique.
    ' Affiche le message.
    Response = MsgBox(Monmessage, MonStyle, MonTitle, Monaide, Mavaleur)
    If Response = vbYes Then  ' L'utilisateur a choisi Oui.
    rep = MsgBox("Vous avez supprimer toutes les informations", vbInformation, "Information")
    Dim a, b, c, d, e, f As Integer ' Colonne 4
    'Valeurs des variables
    For b = 8 To 258  ' Lignes
        For a = 7 To 7   'Colonnes
            Cells(b, a).Interior.ColorIndex = xlNone
            Cells(b, a).Value = ""
        Next a
     
    Next b
    For c = 8 To 258  ' Lignes
        For d = 9 To 9 'Lignes
            Cells(c, d).Interior.ColorIndex = xlNone
            Cells(c, d).Value = ""
        Next d
    Next c
    For e = 8 To 258  ' Lignes
        For f = 10 To 10 'Les lignes
        Cells(e, f).Interior.ColorIndex = xlNone
        Cells(e, f).Value = ""
        Next f
    Next e
    Else    ' Si l'utilisateur a choisi Non.
        rep = MsgBox("Vous avez supprimer aucunes informations", vbInformation, "Information")
    End If
    End Sub
    Amitiés
    phildu80

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    plutôt brouillon, si j'ai bien compris le besoin il faudrait moins de dix lignes de code …

    Joindre alors un classeur exemple en .xlsx avec une feuille source et une feuille résultat désiré.

  3. #3
    Membre averti
    Homme Profil pro
    Formation à l'informatique
    Inscrit en
    Novembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Formation à l'informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 29
    Par défaut
    Voici le fichier Excel
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Si le fichier que tu as transmis est représentatif de ton besoin, alors le "258" de la boucle "For to" est très largement surévalué.

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Récupérer des morceaux de code sur Internet, c'est pratique mais essayer de comprendre ce que fait ce code, c'est mieux.
    Ca évite des "hérésies" comme "For a=9 to 9".

    J'ai réécrit ton code un peu plus proprement. C'est pas parfait (un simple "Range" permettrait d'éliminer le "For to") mais c'est toujours mieux qu'avant.
    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
    Sub Effacer_Imprimer()
     
       Dim Response as String
       Dim a As Integer
     
       ' Affiche le message.
       Response = MsgBox("Souhaitez-vous supprimer les informations contenues dans les tableaux ?", _   ' Définit le message.
                          vbYesNo + vbQuestion, _   ' Définit les boutons.
                          "Informations", _    ' Définit le titre.
                          "DEMO.HLP", _    ' Définit le fichier d'aide.
                          1000)    ' Définit le contexte de la rubrique.
     
       If Response = vbYes Then  ' L'utilisateur a choisi Oui.
          MsgBox("Vous avez supprimer toutes les informations", vbInformation, "Information")
     
          For a = 8 To 258  ' Lignes
             Cells(a, 7).Interior.ColorIndex = xlNone
             Cells(a, 7).ClearContents
     
             Cells(a, 9).Interior.ColorIndex = xlNone
             Cells(a, 9).ClearContents
     
             Cells(a, 10).Interior.ColorIndex = xlNone
             Cells(a, 10).ClearContents
          Next a
     
       Else    ' Si l'utilisateur a choisi Non.
           MsgBox("Vous avez supprimer aucunes informations", vbInformation, "Information")
     
       End If
     
    End Sub
    Les lignes sur lesquelles s'appliquent le nettoyage sont celles délimitées par les valeurs du "For to" de la ligne 16.

    Si tes cellules ne sont pas consécutives, il faut que tu dupliques la boucle "For to" (de la ligne 16 à la ligne 25) et que tu mettes à chaque fois les limites de la zone en numéro de ligne dans les valeurs du "For to".

  6. #6
    Membre averti
    Homme Profil pro
    Formation à l'informatique
    Inscrit en
    Novembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Formation à l'informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 29
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Récupérer des morceaux de code sur Internet, c'est pratique mais essayer de comprendre ce que fait ce code, c'est mieux.
    Ca évite des "hérésies" comme "For a=9 to 9".
    Ce sont les codes que j'ai vu en cours

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Autrement dit, tu nous demandes de faire tes devoirs ?

  8. #8
    Membre averti
    Homme Profil pro
    Formation à l'informatique
    Inscrit en
    Novembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Formation à l'informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 29
    Par défaut
    Non, je suis en stage, donc je reprend les codes que j'ai pu voir en cours et je les adaptent

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    J'espère que celui qui avait pondu ça n'est pas professeur....

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

Discussions similaires

  1. [XL-2010] Effacer des cellules en fonction de la valeur d'un autre cellule
    Par aalex85 dans le forum Excel
    Réponses: 9
    Dernier message: 02/02/2015, 08h42
  2. [LibreOffice][Tableur] Fonction effacer valeur Cellule
    Par phildu80 dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 19/06/2014, 07h22
  3. [XL-2003] Action en fonction de valeur cellule
    Par lafafmentvotre dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/05/2010, 17h56
  4. Effacer des cellules en fonction de la date
    Par jarault dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/04/2008, 12h08
  5. Réponses: 10
    Dernier message: 03/05/2006, 11h34

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