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 rechercher et remplacer vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 21
    Par défaut Fonction rechercher et remplacer vba
    Bonjour à tous,

    je peine sur un autre problème, je range 6 produits par emplacement. Il m'arrive de les changer de place et donc comme il y en a des centaines à chaque fois je voudrais pourvoir rechercher dans le fichier et remplacer l'emplacement des 6 produits
    par un autre. Là où je coince c'est que mon code ne me permet de le faire qu'à un seul et ignore les autres et une fois le remplacement fait, soit la combobox et la textbox ne s'efface pas, soit elles s’efface et je perd la liste du menu déroulant.

    Quelqu'un peut il m'éclairer ?

    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
    Option Explicit
    Dim Ligne As Long
    Dim Cel As Range
     
     
     
     
    Private Sub CommandButton1_Click()
      With Sheets("Feuil1")
        Set Cel = .Columns("D").Find(what:=Me.ComboBox1, LookIn:=xlValues, lookat:=xlWhole)
        If Not Cel Is Nothing Then
          Ligne = Cel.Row
          If MsgBox("Voulez-vous attribuer un numéro de palette définitif ?", _
                          vbQuestion + vbYesNo, "Modification") <> vbYes Then Exit Sub
        .Range("D" & Ligne) = Me.TextBox1
     
        End If
      End With
       Unload Me
      UserForm1.Show vbModeless
     
    End Sub
    Private Sub ComboBox1_Change()
        TextBox1.Value = ComboBox1.Value
     
    End Sub
      0  0

  2. #2
    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
    Tu peux faire tout ça sans boucle et en une seule ligne avec la méthode Replace.
    https://msdn.microsoft.com/fr-fr/lib.../ff194086.aspx
      0  1

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 21
    Par défaut
    Je ne connais pas cette fonction, peux tu être plus clair ?

    Merci d'avance
      1  1

  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
    Dans le lien que j'ai fourni, il y a la description, la syntaxe, les paramètres, une explication et un exemple.
    A part faire tout le boulot pour toi, je ne vois pas comment être plus clair.

    Mais il est vrai qu'en ayant répondu 2 min après ma proposition, tu n'as pas du avoir le temps de lire tout ça...
      2  1

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 21
    Par défaut
    Bonsoir,

    j'ai pourtant essayé mais jusqu'à tard et je n'y arrive pas, ce n'est pas de la mauvaise volonté. J'ai l'impression d'être encore plus perdu.
    J'espère que quelqu'un pourra m'expliquer ce qui ne va pas car j'ai eu toutes sorte d'erreur. Avant, j'arrivais à remplacer une seule case mais maintenant plus rien. Je désespère.
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Private Sub ComboBox1_Click()
    Me.TextBox1.SetFocus
    End Sub
     
    Private Sub CommandButton1_Click()
      If TextBox1.Value = "" Then
    MsgBox "Texte de remplacement définitif est vide !"
    TextBox1.SetFocus
    Else
    End If
     
    Sheets("Feuill").Columns("D").Replace (What:="Combobox1", Replacement:="Textbox1",
     SearchOrder:=xlByColumns, MatchCase:=True)
     
     
        If Not Cel Is Nothing Then
          Ligne = Cel.Row
          If MsgBox("Voulez-vous modifier le numéro de palette ?", _
                          vbQuestion + vbYesNo, "Modification") <> vbYes Then Exit Sub
     
     
     
     
     
     
      End If
      Unload Me
      UserForm2.Show vbModeless
     
     End Sub
     
    Private Sub TextBox1_Change()
     
    End Sub
     
    Private Sub TextBox2_Change()
    TextBox2.Value = ComboBox1.Value
    End Sub
     
    Private Sub UserForm2_Initialize()
    Dim i As Long
    With Sheets("Feuil1")
    For i = 2 To 1500
    ComboBox1.AddItem .Cells(i, 1)
    Next i
    End With
    End Sub
      1  0

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Sheets("Feuill").Columns("D").Replace (What:="Combobox1", Replacement:="Textbox1",
    SearchOrder:=xlByColumns, MatchCase:=True)
    Tu cherches à remplacer la chaîne de caractères "Combobox1" par la chaîne de caractères "Textbox1" ?
    Vraiment ?
      1  1

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Autant de messages (6 utiles pour 12 inutiles) qui tournent autour du pot au lieu de donner et d'expliquer directement la solution...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------
      4  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] fonction "rechercher et remplacer" impossible à appliquer entre deux cellules
    Par stephpet dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/12/2016, 22h51
  2. [XL-2003] Problème fonction recherche / remplacer sous VBA
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/04/2010, 13h13
  3. fonction recherche et remplace
    Par gaihdriah dans le forum Excel
    Réponses: 7
    Dernier message: 10/02/2009, 15h08
  4. Problème code de la fonction Rechercher et Remplacer
    Par LaPanic dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/06/2007, 18h10

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