Remplacer des valeurs dans plusieurs tableaux

Bonjour,

J'ai plusieurs tableaux nommés dans une feuille excel.

Dans la première colonne de chaque tableaux, je voudrais remplacer les valeurs intitulées rouge par la valeur de la cellule N5

Dans la seconde colonne de chaque tableaux,je voudrais remplacer les valeurs intitulées bleu par la valeur de la cellule N6

Dans la troisième colonne de chaque tableaux, je voudrais remplacer les valeurs intitulées orange par la valeur de la cellule N7

Dans la quatrième colonne de chaque tableaux, je voudrais remplacer les valeurs intitulées vert par la valeur de la cellule N7

Ci joint un exemple avec deux tableaux mais au total, j'en ai 9 avec des données malheureusement que je ne peux pas partager

J'ai essayé avec for each et ListObjects mais cela ne fonctionne pas.

Merci d'avance pour votre aide et bon week-end

Guil

20tables.xlsm (12.49 Ko)

Solution excel sans vba

Créer un tableau des correspondances

insérer une colonne vide entre la première et la deuxième colonne du tableau

mettre la formule excel comme en D18 et la tirer vers le bas

ensuite faire copier la nouvelle colonne et la recoller dessus avec "collage spécial" "valeurs"

ensuite supprimer l' ancienne première colonne

Cdt

14tables-01.xlsm (13.45 Ko)

Bonjour Toukoul,

Merci pour ta solution mais il me faudrait vraiment une solution VBA car j'ai beaucoup de tableaux et de données.

Il faudrait que je puisse remplacer les données tableaux par tableaux et colonnes par colonnes.

Help aux pros de vba, moi je sèche

Bon week-end

Salut Guil

Selon ton fichier joint, voici le code pour la feuille qui s'y trouve

Attention ! Tu as Verte et Vert en valeur

Sub RemplaceTbO()
  Dim Tbo As ListObject
  Dim Cel As Range
  Dim sVal As String
  ' Parcour tous les ListeObject de la feuille
  For Each Tbo In Sheets("Feuil1").ListObjects
    ' Pour toutes les cellules du tableau
    For Each Cel In Tbo.DataBodyRange
      ' Modifier le contenue selon la valeur
      Select Case Cel.Value
      Case "rouge"
        Cel.Value = "Juillet"
      Case "bleue"
        Cel.Value = "Septembre"
      Case "orange"
        Cel.Value = "Octobre"
      Case "verte", "vert"
        Cel.Value = "Novembre"
      End Select
    Next Cel
  Next Tbo
End Sub

@+

Merci Bruno, cela m'aide bien dans ma requête.

Si tu peux continuer à me sortir de ce pétrin,

Il faudrait que :

1. le code parcours la colonne 1 du tableau 1 et remplace les valeurs trouvées (rouge) par le texte en N5

2. le code parcours la colonne 2 du tableau 1 et remplace les valeurs trouvées (bleu) par le texte en N6

3.le code parcours la colonne 3 du tableau 1 et remplace les valeurs trouvées (orange) par le texte en N7

Et ensuite idem mais on passe au tableau 2

etc...etc...etc

(La valeur que je veux remplacer peut être identique en colonne 1 et en colonne 4 par mais le texte de remplacement différent)

Merci à tous de votre aide

5tables.xlsm (12.49 Ko)

Re,

Arf oui, tu veux que les cellules soient remplacées par le contenu des cellules N5 à N8, c'est bien ça ?

Si tel est le cas, c'est simple

Sub RemplaceTbO()
  Dim Tbo As ListObject
  Dim Cel As Range
  Dim sVal As String
  ' Parcour tous les ListeObject de la feuille
  For Each Tbo In Sheets("Feuil1").ListObjects
    ' Pour toutes les cellules du tableau
    For Each Cel In Tbo.DataBodyRange
      ' Modifier le contenue selon la valeur
      Select Case Cel.Value
      Case "rouge"
        Cel.Value = Sheets("Feuil11").Range("N5").Value
      Case "bleue"
        Cel.Value = Sheets("Feuil11").Range("N6").Value
      Case "orange"
        Cel.Value = Sheets("Feuil11").Range("N7").Value
      Case "verte", "vert"
        Cel.Value = Sheets("Feuil11").Range("N8").Value
      End Select
    Next Cel
  Next Tbo
End Sub

@+

Bonjour

Bonjour à tous

Une variante à tester.

Bye !

19tables-v1.xlsm (30.80 Ko)

[quote=BrunoM45 post_id=870876 time=1589626404 user_id=15789]

Re,

Bruno, idéalement j'aimerai voyager dans la 1ere colonne et si je trouve dans la cellule un caractère spécifique et bien je le remplace par un autre.

Puis je passe à la colonne suivante et si je trouve un caractère spécifique et bien je le remplace par un autre caractère.

...etc...etc

Ensuite je passe au tableau suivant.

Oui c'est compliqué mais les pistes sont bonnes, courage lol

L'idée de @gmb me correspond bien mais au lieu de value, j'aimerai replace what :="rouge" pour la colonne 1 la valeur en N5....

pour la colonne 2 what:="bleu" la valeur de N6

......etc..etc

Et en + il peut avoir plusieurs rouge dans la colonne 1 et il faut donc tous les remplacer. Idem pour les colonnes suivantes....

Argggg, j'y suis presque

Cette macro te sert pour n'importe lequel de tes tableaux

mettre la table de correspondance à jour, aller sur la feuille ou est le tableau puis exécuter la macro

Cdt

11tables-02.xlsm (28.23 Ko)

Bonjour

Bonjour à tous

Une variante à tester.

Bye !

Bonjour @gmb,

C'est exactement cela mais j'aimerai la fonction replace qui me semble la plus appropriée afin de pouvoir modifier une chaîne de caractère (au lieu de rouge, cela serait 'oug' ) par une autre (définie en colonne N)

En considérant qu'il peut avoir plusieurs 'oug' dans la colonne 1, plusieurs XXXX dans la colonne 2....etc...etc.

Merci d'avance pour la suite

4tables-v1.xlsm (26.37 Ko)

a tu testé ma version, il y a un tableau avec les valeurs a chercher et les valeurs a mettre à la place, suivant les colonnes du tableau

Cette macro te sert pour n'importe lequel de tes tableaux

mettre la table de correspondance à jour, aller sur la feuille ou est le tableau puis exécuter la macro

Cdt

Merci pour le travail Toukoul,

Mais comme j'ai beaucoup de tableaux, il faudrait que le positionnement se fasse automatiquement.

La solution de @gmb me correspond quasiment sauf que je dois remplacer une chaîne de caractère ex : 'oug' par une autre située admettons en N6 pour la colonne 1 de chaque tableau puis pour la colonne 2 remplacer la chaîne 'aune' par une autre située admettons en N7.....etc...etc

On approche

5tables-v1.xlsm (26.37 Ko)

Peux-tu donner un exemple précis avec de que tu as avant, ce que tu veux changer et par quoi et enfin ce que tu veux obtenir ?

Bye !

Re,

Bonjour @gmb,

C'est exactement cela mais j'aimerai la fonction replace qui me semble la plus appropriée afin de pouvoir modifier une chaîne de caractère (au lieu de rouge, cela serait 'oug' ) par une autre (définie en colonne N)

En considérant qu'il peut avoir plusieurs 'oug' dans la colonne 1, plusieurs XXXX dans la colonne 2....etc...etc.

Guil... quand tu sauras t'exprimer... ca devient désespérant sur ce forum

GMB la solution est entre nous deux, mais ta solution étant plus adaptée que la mienne, voila ce qu'il te faut faire :

le critère de la ligne 1 ne s'applique qu'à la 1ere colonne des tableaux,

le critère 2 ne s'applique qu'a la deuxième colonne des tableaux, etc...

et avec ça GUIL devra se mettre un casque tellement il sautera haut

Salut compagnon

a tu testé ma version, il y a un tableau avec les valeurs a chercher et les valeurs a mettre à la place, suivant les colonnes du tableau

Oui Toukoul, j'ai testé mais il faut absolument que je me positionne en automatique dans les tableaux.

Et comme tu disais plus bas :

ma colonne 1 de chaque tableau doit être remplacer par le critère 1

ma colonne 2 de chaque tableau doit être remplacer par le critère 2

Sauf que sur mes colonnes, je veux chercher :

une chaîne de caractère dans la colonne 1 et la remplacer par le critère 1

une chaîne de caractère dans la colonne 2 et la remplacer par le critère 2

Thanks

Peux-tu donner un exemple précis avec de que tu as avant, ce que tu veux changer et par quoi et enfin ce que tu veux obtenir ?

Bye !

Gmb,

Pour tous les tableaux de ma feuille,

Je veux chercher :

une chaîne de caractère dans la colonne 1 et la remplacer par le critère 1

une chaîne de caractère dans la colonne 2 et la remplacer par le critère 2

Ton approche ci jointe me convient sauf que ce sont des chaines de caractères à remplacer.

Voilà pourquoi, je suis parti par un replace

Est ce plus clair ?

Merci pour l'aide

Bonjour à tous,

Merci à vous tous pour l'aide apportée.

J'ai enfin la solution grâce à @gmb.

Je peux comme le dit @Toukoul sauter au plafond.....Yesssss.

Bon week-end, portez vous bien.

Ci joint le fichier final, cela peut être utile

12tables-v1.xlsm (26.75 Ko)

Re,

Bonjour @gmb,

C'est exactement cela mais j'aimerai la fonction replace qui me semble la plus appropriée afin de pouvoir modifier une chaîne de caractère (au lieu de rouge, cela serait 'oug' ) par une autre (définie en colonne N)

En considérant qu'il peut avoir plusieurs 'oug' dans la colonne 1, plusieurs XXXX dans la colonne 2....etc...etc.

Guil... quand tu sauras t'exprimer... ca devient désespérant sur ce forum

Pas évident de s'expliquer mais certains ont tout de même compris, la solution est au dessus, le sujet est résolu.

Tu peux regarder et tu comprendras ce que je voulais. Bon week-end

Rechercher des sujets similaires à "remplacer valeurs tableaux"