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 :

Identifier les cellules sélectionnées et remplacer les valeurs


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 156
    Points : 51
    Points
    51
    Par défaut Identifier les cellules sélectionnées et remplacer les valeurs
    Bonjour à tous,

    Je tiens déjà à vous remercier d'avance pour le temps que vous consacrerez à lire mon poste et à me répondre s'il vous plait

    J'ai beau chercher sur le net je ne trouve pas la macro qui peut me faire avancer dans mon projet ...

    J'ai une feuille avec 33 colonnes et un nombre de ligne variable en fonction de ce qu'ajoute l'utilisateur.

    Le but est le suivant :

    Si l'utilisateur souhaite modifier les valeurs de la colonne 7 (G) par exemple, mais uniquement sur les lignes de 4 à 6 par exemple, je veux qu'il sélectionne ces lignes de 4 à 6, qu'il ouvre un UserForm, qu'il rentre sa nouvelle valeur dans une TextBox et que les cellules G4, G5, G6 se modifient quand il cliquera sur un bouton qui valide la nouvelle valeur dans la TextBox pour écraser les valeurs des cellules G4, G5, G6.

    Merci beaucoup et j'espère que vous me comprendrez

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour,
    Citation Envoyé par Mél3790 Voir le message
    je ne trouve pas la macro qui peut me faire avancer dans mon projet ...
    Un petit exemple en fonction de ta recherche que tu pourras adapter dans ce classeur
    Fichiers attachés Fichiers attachés

  3. #3
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Mél3790 Voir le message
    Si l'utilisateur souhaite modifier les valeurs de la colonne 7 (G) par exemple, mais uniquement sur les lignes de 4 à 6 par exemple, je veux qu'il sélectionne ces lignes de 4 à 6, qu'il ouvre un UserForm, qu'il rentre sa nouvelle valeur dans une TextBox et que les cellules G4, G5, G6 se modifient quand il cliquera sur un bouton qui valide la nouvelle valeur dans la TextBox pour écraser les valeurs des cellules G4, G5, G6.
    Pas besoin de UserForm, un simple InputBox suffit.

    Une fois le résultat de l'InputBox dans une variable, il suffit de l'assigner par un simple "=" à un Selection.Value pour que les valeur de la zone sélectionnée soient modifiées.

    Pour faire ça propre, il faudrait mettre entre les deux un test If vérifiant que l'utilisateur n'a pas fait un Annuler pour sortir de l'InputBox.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour à tous,

    et si la plage est d'un seul tenant comme dans l'exemple plus besoin de rien.
    Sélectionner la plage, saisir la valeur, valider en matriciel avec Shift+Ctrl+Entrée (les 3 touches en même temps).
    Avec l'avantage qu'il n'y a plus de conversion à faire si numériques ou dates.
    eric

  5. #5
    Membre du Club
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 156
    Points : 51
    Points
    51
    Par défaut
    Merci pour vos réponses
    Alors justement il y des dates, des valeurs numériques, etc. dont les formats définis dans mes macros sont importants pour d'autres manipulations que les utilisateurs peuvent faire. Bref.


    En fait la feuille se remplie grâce à un UserForm. Chaque colonne est remplie grâce à différents contrôles (Textbox, combobox, etc.)

    Je souhaite vraiment que les utilisateurs (mes 3 collègues) passent par un autre UserForm pour modifier les valeurs qu'ils souhaitent.

    Si je reprend mon exemple :

    Si l'utilisateur souhaite modifier les valeurs de la colonne 7 (G) par exemple, mais uniquement sur les lignes de 4 à 6 par exemple, je veux qu'il sélectionne ces lignes de 4 à 6, qu'il ouvre un UserForm, qu'il rentre sa nouvelle valeur dans une TextBox et que les cellules G4, G5, G6 se modifient quand il cliquera sur un bouton qui valide la nouvelle valeur dans la TextBox pour écraser les valeurs des cellules G4, G5, G6.

    Sur cette même sélection, l'utilisateur peut aussi vouloir modifier les valeurs présentent dans les cellules B4, B5, B6 grâce à une autre textbox ou une combobox.

    Merciii

  6. #6
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Mél3790 Voir le message
    Je souhaite vraiment que les utilisateurs (mes 3 collègues) passent par un autre UserForm pour modifier les valeurs qu'ils souhaitent.
    Passer par un TextBox dans connaitre pour renseigner des données dont on ne connait pas la nature, c'est foncer au casse-pipe, surtout si ces données peuvent impliquer des dates.

    La méthode décrite par eriiic ( ) est bien plus simple et bien plus sûre.

    Mais tu vas certainement rétorquer que tes utilisateurs sont trop incompétents pour faire un Ctrl+Shift+Entrée (comme si on ne pouvait pas enseigner l'appui sur 3 touches, sic ).
    Donc, si tu tiens absolument à passer par une macro, je te conseille de procéder ainsi :
    L'utilisateur saisit sa données dans la première cellule de la zone.
    Ensuite il sélectionne la zone, appuie sur le bouton qui déclenche la macro et la valeur saisie se place dans toutes les cellules de la zone.
    En VBA, rien de plus simple : Selection.Value = Selection.Cells(1, 1).Value.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre du Club
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 156
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    Merci de m'avoir mise sur la piste, j'ai un petit peu adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Columns(7).Value =
    Et là je peux bien passer par une macro avec un joli UserForm.

    Mes utilisateurs ne sont pas incompétents, je réalise un outil adapter à leurs besoins.
    Je connais bien cette méthode Ctrl+Shift+Entrée, mais je n'en veux pas pour mon projet.

    Si je demandais de l'aide pour cette macro c'est qu'il y a des tenants et des aboutissants qui n'est pas nécessaire que j'étale sur mon post.


    Merci pour votre aide.

  8. #8
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Mél3790 Voir le message
    Si je demandais de l'aide pour cette macro c'est qu'il y a des tenants et des aboutissants qui n'est pas nécessaire que j'étale sur mon post.
    C'est sûr que si tu caches certaines données du problème, on va perdre beaucoup de temps pour rien.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [Débutant] Identifier les valeurs d'un vecteur
    Par jumagueule dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/09/2016, 13h03
  2. Réponses: 3
    Dernier message: 04/11/2015, 16h19
  3. Réponses: 3
    Dernier message: 23/10/2014, 18h35
  4. Identifier les valeurs d'une trame dans un fichier texte
    Par dreamnos dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 09/05/2008, 17h18

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