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 :

Recherché une valeur dans une colonne pour la remplacer par une autre [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 28
    Points : 5
    Points
    5
    Par défaut Recherché une valeur dans une colonne pour la remplacer par une autre
    Bonjour à tous, je suis débutant excel et je bute sur une manip que je n'arrive pas à faire.
    L'idée serai que je puisse retrouver "*" dans une colonne pour pouvoir le remplacer par une valeur de cellule que je définis, et tout cela lors de l'appuie sur un bouton, et si il n'y a pas "*" ça recopie la cellule à la suite . Cette "*" apparaît lors d'un bouton "insérer ligne" qui peut se faire n'importe où dans le tableau, et j'aimerai pouvoir trouver étoile par étoile afin de modifier sa valeur par "PC01" par exemple.
    Je ne sais pas si c'était claire mais dites moi pour plus de précision !
    Vous verrez que les boutons "installation", "actionneur", "capteur" et "generalite" on tous la même fonction
    j'ai joint mon fichier excel (il fera surement brouillons désolé)
    Merci d'avance pour les réponse !

    Tom
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Points : 602
    Points
    602
    Par défaut
    Salut, il faut utiliser la fonction replace de VBA plus d'info :

    A priori ce que tu demande est simple donc avec un peu de lecture tu devrais t'en sortir

    Bon codage

    PS : n'oublie pas d'enregistrer ton fichier au format ".xlsm" sinon tu ne pourra pas prendre en charge les macro.

    A+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 28
    Points : 5
    Points
    5
    Par défaut
    okay merci Christian ! Je vais check ça et je redirai si jamais je n'y arrive pas et que tu as du temps à m'accorder

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 28
    Points : 5
    Points
    5
    Par défaut
    J'avais déjà vue cette doc mais je ne suis pas sur que ça soit la solution à mon problème car on l'utilise surtout pour un MsgBox ?
    Je voulais faire un If on a "*" alors on remplace "*" par la valeur "E21" sinon je copie à la suite la valeur de "E21", et puisque "*" peut être insérer n'importe où il faut que je puisse vérifier chaque cellule de la colonne depuis la première. J'ai voulue faire avec une boucle mais ça ne répond pas à mes attentes , et ensuite j'ai essayé la méthode find mais sans succès car j'au du mal à l'utiliser.
    je sais pas si c'est compréhensible haha ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Points : 602
    Points
    602
    Par défaut
    Non ca n'a rien a voir avec un msgbox

    La premiere ligne du lien te donne la fonction :

    La fonction Replace remplace des valeurs par d'autres à l'intérieur d'une chaîne de caractères (c'est plus ou moins l'équivalent de la fonction Excel SUBSTITUE).
    Donc je pense que c'est ce que tu veux.

    Pour boucler il faut deja definir sur quelle zone tu veux boucler (range)

    Et tu fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    sub remplacer
    Dim mycell as range
    For each mycell in feuil1.range("a1:A10")
    mycell.value=replace(mycell.value,"*","E21")
    next mycell
    end sub
    Ici je remplace toutes les * par des E21 dans la zone A1:A10 de la Feuil1

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 28
    Points : 5
    Points
    5
    Par défaut
    J'ai écrit ceci mais j'ai pas l'impression que ça marche très bien :/
    J'ai changé "*" par "Remplire" car ça me posait pb :

    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
    Sub Cherche()
     
    Dim Trouve As Range, PlageDeRecherche As Range
    Dim Valeur_Cherchee As String, AdresseTrouvee As String
     
    Valeur_Cherchee = "Remplire"
    Set PlageDeRecherche = ActiveSheet.Columns(5)
    Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
     
    If Trouve Is Nothing Then
     
        Sheets("LP").Select
        Range("E21").Copy
        Range("E65536").End(xlUp)(2, 1).Select
        ActiveSheet.Paste
    Else
     
        Valeur_Cherchee = Replace(Valeur_Cherchee, "Remplire", "E21")
    End If
    Set PlageDeRecherche = Nothing
    Set Trouve = Nothing
    End Sub
    PS : Je vais passer pour un inculte ' mais je n'arrive par à mettre mon fichier excel sous .xlsm

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Points : 602
    Points
    602
    Par défaut
    j'arrive pas a te suivre quand tu dis
    Je voulais faire un If on a "*" alors on remplace "*" par la valeur "E21" sinon je copie à la suite la valeur de "E21"
    quand tu evoque "E21" tu fais référence a la cellule E21 ?

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 28
    Points : 5
    Points
    5
    Par défaut
    Oui pardon c'est la valeur de la cellule E21 que j'utilise, et là le dernier soucis que j'ai c'est de remplacer "remplire" (qui était "*" avant mais j'ai changé) par la valeur de la cellule E21

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Points : 602
    Points
    602
    Par défaut
    Quand tu utilise replace tu peux demander a remplacer par la valeur d'une cellule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub remplacer()
    Dim mycell As Range
    For Each mycell In Feuil1.Range("a1:A10")
    mycell.Value = Replace(mycell.Value, "*", Feuil1.Range("E21").Value)
    Next mycell
    End Sub
    Maintenant a toi de définir la plage de remplacement (ici feuil1.range("a1:a10")).

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2021
    Messages : 28
    Points : 5
    Points
    5
    Par défaut
    Okay top merci Christian !

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

Discussions similaires

  1. [LibreOffice][Tableur] recherche de valeur dans plusieurs colonnes
    Par boboss123 dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 25/05/2016, 11h02
  2. [XL-2010] Somme sur une recherche de valeur dans plusieurs colonnes
    Par Marmouz dans le forum Excel
    Réponses: 2
    Dernier message: 21/01/2012, 15h06
  3. Supprimer un canevas pour le remplacer par un autre
    Par mechul dans le forum Tkinter
    Réponses: 2
    Dernier message: 27/04/2010, 02h20
  4. Réponses: 4
    Dernier message: 18/12/2009, 13h44
  5. Recherche d'une valeur dans plusieurs colonnes
    Par Arnaud F. dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/03/2009, 11h44

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