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

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    janvier 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : janvier 2018
    Messages : 5
    Points : 3
    Points
    3

    Par défaut vider le contenu de 2 ou plusieurs cellules

    Bonjour,

    Etant tout nouvellement enregistré sur ce forum, avant de poser ma question je tiens à remercier l'ensemble des contributeurs qui aident bénévolement.
    Depuis de nombreuses années j'ai pu obtenir un tas de réponses à mes petits problèmes en parcourant ce forum en simple visiteur guidé par ce célèbre moteur et ami de tous

    Ce forum est une mine d'or. Donc, merci !
    Je précise que, même si je me débrouille sur de l'excel de base, je reste nullissime en VBA (et encore le mot est faible)
    Du coup, tous mes classeurs sont "bidouillés" sans recours à VBA et j'essaye de m'en passer autant que possible (certainement une erreur mais bon, quand on est nul...)

    Mais là, je sèche et je pense que je ne peux pas faire autrement qu'utiliser un peu de code.


    j'en viens à ma question (j'espère la poser sur la bonne partie du forum) :

    Dans une feuille, je dois saisir un paramètre soit en € soit en %
    Je saisis
    soit un montant en € dans 1 cellule (admettons "B3"),
    soit en % dans une autre ("D3" par exemple).

    Je veux vider "D3" si je saisi en "B3" et inversement si je saisi en "B3" je veux vider "D3"
    Je dois faire exactement la même manipulation pour 3 autres paramètres sur la même feuille
    Je ne veux pas passer par une étape préliminaire type liste déroulante ou un truc dans le genre car il faut que la saisie de ce paramètre soit la + simple et rapide possible pour l'utilisateur final.



    Donc, je bidouille sans succès depuis un moment avec .ClearContents et j'ai passé en vain plusieurs heures sur le net pour trouver une réponse à ce problème.
    La solution est certainement simple mais ça dépasse mes compétences.
    => vous voyez le niveau... c'est pas brillant

    quelqu'un aurait-il une idée pour me venir en aide ?

    Par avance, merci d'avoir pris le temps de me lire.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    mai 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 393
    Points : 139
    Points
    139

    Par défaut

    Bonjour aldorhyn,

    Essaye de regarder du coté de "Worksheet_Change" en utilisant .ClearContents tu devrais trouver.
    Du moins je pense.

  3. #3
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    janvier 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : janvier 2018
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    Merci pour ta réponse
    Mais je vois pas comment y arriver.
    Je suis vraiment nul en VBA

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    février 2007
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 1 751
    Points : 2 854
    Points
    2 854

    Par défaut

    Bonjour,

    le principe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count > 1 Then Exit Sub
        Application.EnableEvents = False
        Select Case Target.Address(0, 0)
        Case "B3": [D3].ClearContents
        Case "D3": [B3].ClearContents
        End Select
        Application.EnableEvents = True
    End Sub
    maintenant s'il s'agit de plages entières à surveiller, ou si ça doit fonctionner avec un coller multiple il faudrait faire autrement.
    eric

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    mai 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 393
    Points : 139
    Points
    139

    Par défaut

    Bonjour eriiic,

    Je pensais a quelque chose comme ça, mais je n'aurais pas fait un code aussi propre que toi.

  6. #6
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    janvier 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : janvier 2018
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    Extraordinaire...

    eriiic, => merci, merci, merci !!!

    C'est exactement ce que je recherchais

    Alors, je comprend toujours pas (...et je suis preneur d'explications avec plaisir) mais vu que j'ai 4 paramètres à valider de cette manière, j'ai rajouté les cellules concernées à la suite.

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count > 1 Then Exit Sub
        Application.EnableEvents = False
        Select Case Target.Address(0, 0)
        Case "D44": [F44].ClearContents
        Case "F44": [D44].ClearContents
        Case "D47": [F47].ClearContents
        Case "F47": [D47].ClearContents
        Case "K44": [M44].ClearContents
        Case "M44": [K44].ClearContents
        Case "K47": [M47].ClearContents
        Case "M47": [K47].ClearContents
        End Select
        Application.EnableEvents = True
     
    End Sub
    Et ça fonctionne.
    Pour le béotien que je suis en VBA, ça relève du miracle....

    donc encore merci merci bcp !!!

  7. #7
    Rédacteur

    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    8 008
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 8 008
    Points : 18 862
    Points
    18 862
    Billets dans le blog
    8

    Par défaut

    Bonjour,
    Pour rendre la lecture plus simple encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Count > 1 Then Exit Sub
        Application.EnableEvents = False
        With Target
          Select Case .Address(0, 0)
            Case "D44", "D47", "K44", "K47": .Offset(ColumnOffset:=2).ClearContents
            Case "F44", "F47", "M44", "M47": .Offset(ColumnOffset:=-2).ClearContents
          End Select
        End With
        Application.EnableEvents = True
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Quelques contributions : USERFORM - Créer, Consulter, Modifier et Supprimer des enregistrements à l'aide d'un formulaire - Géolocalisation d'une adresse avec Excel et Google sans VBA

  8. #8
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    janvier 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : janvier 2018
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    euhh...

    Je suis un

    Je comprend rien...

    C'est de l'hébreu.... mais merci à tous !!

  9. #9
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    6 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 6 451
    Points : 11 149
    Points
    11 149

    Par défaut

    Bonjour aldorhyn
    Aucune langue n'est incompréhensible, que ce soit l'hébreu, le chinois, ou quoi que ce soit d'autre, y compris le français.
    Il suffit de l'apprendre et tout devient clair.
    L'apprendre ? ben .... en en étudiant sa structure,t ses formes et ses expressions idiomatiques. Elles y sont exposées, en ce qui concerne VBA/Excel, dans ton aide interne VBA, qui est à lire, comme on lirait, pour n'importe quelle langue, un dictionnaire et la grammaire de cette langue.
    Tout bête, non ?
    Ne ménage pas cet effort-là. Tu en sortiras non seulement enrichi dans le domaine de CETTE langue, mais dans la foulée dans le domaine de toute nouvelle langue à apprendre, le seconde s'apprenant plus facilement que la première, la troisième plus facilement que la seconde, etc ... (crois-moi).
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro). Ne m'en proposez donc pas.

    Rien n'est plus lamentablement vile qu'un joueur qui pipe les dés
    Celui qui prétend déterminer une cause fondamentale sur la base d'un effet n'a aucune chance d'avoir mon estime. S'il insiste, il a alors droit à mon total mépris.

  10. #10
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    janvier 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : janvier 2018
    Messages : 5
    Points : 3
    Points
    3

    Par défaut

    Citation Envoyé par unparia Voir le message
    Il suffit de l'apprendre et tout devient clair.
    L'apprendre ? ben .... en en étudiant sa structure,t ses formes et ses expressions idiomatiques. Elles y sont exposées, en ce qui concerne VBA/Excel, dans ton aide interne VBA, qui est à lire, comme on lirait, pour n'importe quelle langue, un dictionnaire et la grammaire de cette langue.

    Ne ménage pas cet effort-là. Tu en sortiras non seulement enrichi dans le domaine de CETTE langue, mais dans la foulée dans le domaine de toute nouvelle langue à apprendre, le seconde s'apprenant plus facilement que la première, la troisième plus facilement que la seconde, etc ... (crois-moi).
    Amitiés
    Je suis entièrement d'accord avec toi.
    et je demande qu'à apprendre au contraire car avoir une réponse à un problème c'est bien mais comprendre la réponse c'est encore mieux.
    C'est là qu'on progresse....
    Comme pour bcp de choses en informatique, l'apprentissage de façon autodidacte est (de mon point de vue) la méthode la + efficace.
    C'est ce que je fais depuis longtemps pour pleins d'autres sujets qu'Excel
    Sauf que, je ne sais pas pourquoi, le VBA (ou de façon plus générale, le code),... ben j'ai eu beau essayer à plusieurs reprises... ça passe pas... .

    Vu qu'on est en début d'année et que c'est le temps des bonnes résolutions, je vais essayer de changer de méthode d'apprentissage sur ce point précis...
    qui sait ? peut-être que ça marchera ce coup-ci.

    En tous cas, merci pour ton point de vue.

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    février 2007
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2007
    Messages : 1 751
    Points : 2 854
    Points
    2 854

    Par défaut

    Pour apprendre n'hésite pas à te servir de F1 sur les fonctions, méthodes et propriétés que tu ne connais pas.
    L'aide excel est très complète et bien faite.
    eric

  12. #12
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    6 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 6 451
    Points : 11 149
    Points
    11 149

    Par défaut

    Bonjour eriiic
    Pour apprendre n'hésite pas à te servir de F1 sur les fonctions, méthodes et propriétés que tu ne connais pas.
    L'aide excel est très complète et bien faite.

    Cela fait plaisir de lire ce que tu as écrit là et qui est tellement vrai.
    Merci de l'avoir dit.
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro). Ne m'en proposez donc pas.

    Rien n'est plus lamentablement vile qu'un joueur qui pipe les dés
    Celui qui prétend déterminer une cause fondamentale sur la base d'un effet n'a aucune chance d'avoir mon estime. S'il insiste, il a alors droit à mon total mépris.

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

Discussions similaires

  1. [VBA] verifier le contenu de plusieurs cellules avant impression
    Par franckla dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/10/2017, 13h24
  2. [XL-2010] Vider le contenu d'une plage de cellules
    Par kesamba dans le forum Excel
    Réponses: 2
    Dernier message: 08/01/2015, 18h33
  3. Réponses: 14
    Dernier message: 25/05/2009, 19h57
  4. Concaténer le contenu de plusieurs cellules dans une cellule
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/03/2008, 15h15
  5. [vbexcel]vider le contenu d'une ou plusieurs feuille(s)
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/11/2005, 15h52

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