Remplacements dans un tableau Excel

Bonjour à tous et excellente année.

J’ai un tableau de 28 lignes et 8 colonnes dont les cellules contiennent des lettres a, b, c, d, e, f, g et h (une lettre par cellule). Je voudrais remplacer chaque lettre a par un nombre n1, chaque lettre b par un nombre n2, … , chaque lettre h par un nombre n8.

Manuellement, j’utiliserais « Remplacer par » par chacune des occurrences de la lettre a par n1 et recommencer pour chaque lettre. Je voudrais écrire un code VBA qui le fasse automatiquement après avoir introduit les 8 nombres n1 à n8. J’ai cherché partout (internet et livres d’informatique) une fonction de remplacement correspondante (en VBA ou non). A part « Replace » et « Substitute » qui ne conviennent pas, quelqu’un aurait-il connaissance d’une telle fonction. (Bien sûr je ne demande pas d’écrire le code).

Merci d’avance.

Bonjour,

Il n'y a pas de fonction qui permette de remplacer le contenu d'une cellule par un autre (sauf en créant un second tableau)
Peut-être qu'une solution serait de passer par Power Query (mais là aussi, un second tableau sera généré)

Le code VBA pourrait t'être donné par l'enregistreur de macro, non ?

Salut,

A part « Replace » et « Substitute » qui ne conviennent pas

Pourquoi cela ne convient pas ?

Merci pour ta réponse.

Je vais essayer avec l'enregistreur macro.

En fait, je ne veux pas remplacer une cellule par une autre cellule, mais remplacer son contenu par un nombre.

L'idée est différente ou cela veux dire la même chose ?

Bonne journée.

Sylb

Bonjour Sylb, Le Fil,

Il suffit d'utiliser par le menu Formules du menu général d'Excel, la formule CODE

Soit pour ton besoin = CODE("a")-96

ce qui donnera le chiffre 1. Et pour les lettres suivantes de faire à l'identique.

On peut aussi intégrer une cellule entre les parenthèses. = CODE(A1)-96 où ici A1 jusqu'à A8 portent les lettres.

LettresChiffres
a1
b2
c3
d4
e5

Bonjour X Cellus et merci pour ta réponse.

Je ne crois pas avoir bien expliqué les opérations de remplacement à réaliser.

Je te joins donc un fichier Excel avec des exemples de ce qu'il faut obtenir.

Les tableaux exemples je les ai fais manuellement à l'aide du menu remplacement, mais le but est évidemment d'écrire une procédure pour le faire automatiquement et je ne trouve pas de fonction qui puisse servir.

Merci encore et bonne soirée.

Sylb

Suite,

J'ai téléchargé le fichier et te dirais bientôt.

Si besoin de VBA, je réaliserais la macro.

A nouveau,

En retour le fichier que j'ai laissé en xlsx.

Voir le tableau débutant en colonne H. Avec ses formules se basant sur les lettres inscrites en tableau de base.

Chaque modification des lettres du tableau de base, se répercutera sur le premier tableau.

Lire les notes en rouge.

Appliquer le principe sur les deux autres tableaux. Si difficulté revenir sur ce FIL.

Bonsoir à tous et bonne année !

en reprenant ceci de la demande :
Je voudrais écrire un code VBA qui le fasse automatiquement après avoir introduit les 8 nombres n1 à n8.

Sub Remplace()
    Dim Tablo()
    ' on récupère les valeurs du tableau 8 colonnes et 28 lignes
    Tablo = Range("A1:H28")
    ' on boucle sur les lignes
    For i = 1 To 28
        ' on boucle sur les colonnes
        For j = 1 To 8
            ' la valeur du tableau est égal à la valeur numérique de la lettre - 96 (ASC("a") = 97 - 96 =1)
            ' le chiffre obtenu permet de "choisir" la valeur numérique voulu à savoir l'index 1 qui est égale à n1 etc)
            Tablo(i, j) = Choose(Asc(Tablo(i, j)) - 96, "n1", "n2", "n3", "n4", "n5", "n6", "n7", "n8")
            ' moins 96 pour "tomber" sur 1 mais si le "a" est majuscule ce sera -64
        Next j
    Next i
    Range("A1").Resize(28, 8) = Tablo
End Sub

Le fichier :

Attention, une fois lancé les lettres ne sont plus accessible contrairement à la proposition d' X Cellus, sauf à modifier

Range("A1").Resize(28, 8) = Tablo

par

Range("J1").Resize(28, 8) = Tablo

par exemple

@ bientôt

LouReeD

Bonjour LouReeD

Grand merci pour ta réponse, mais quelque chose ne fonctionne pas , en fait, si tu regardes bien les tableaux des exemples n1, ... , n8 sont des variables, a ne doit pas être remplacé par n1 mais par sa valeur 3, b par la valeur de 9, ... , h par sa valeur 45.

Ta réponse est chouette et me met sur la voie pour l'adapter.

Merci encore pour ce grand coup de pouce.

Syl

Rechercher des sujets similaires à "remplacements tableau"