Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

remplacer des valeurs dans un grand tableau

warden

XLDnaute Nouveau
Bjr la Team
Je suis content de rejoindre le forum. Merci à vous et surtout pour votre réactivité que j'ai pu suivre à travers les fils consultés.
C juste une passion pour moi à 53 ans de faire un peu de programmation en mode autodidacte.

Là j'essaie en novice d'apprehender l'usage des tableaux avec des manipulations via les macros.

Serait-il possible d'avoir une macro pour remplacer rapidement des valeurs [chiffres] dans un grand tableau.

Vu la taille du tableau générique par ailleurs et qui ne peut etre uploadé, en voici une description.

Dimensions du tableau :
600.000 lignes [de 4 à 600.003]
12 colonnes [de B à M]
Tableau rempli aléatoirement de chiffres
De 1 à 36

La 1ere ligne contient les chiffres de 1 à 36
La 2ème ligne contient les correspondances desirées pour le remplacement

1 2 3 4...
7 3 10 1...

J'ai tenté avec des boucles
For ligne=4 to 600.003
For col=2 to 13
If cells(ligne,col)=1 then
cells(ligne,col)=7
End if
Next col
Next ligne

Hhhh vous l'aurez deviné... C même pas la peine de mettre un Timer... C une éternité.

Je m'en remets à vous pour une solution
Et grand merci à ceux qui y mettront du leur, pour leur aimable diligence.
 

vgendron

XLDnaute Barbatruc
Bonjour

à défaut de mettre le fichier complet, peux tu en mettre un extract
ce qu'on peut faire avec 50 lignes et 5 colonnes est très facilement transposable à ton tableau final avec un minimum d'adaptation (voire pas du tout)
 

vgendron

XLDnaute Barbatruc
en retour ton fichier avec une macro (bouton1)

PS, j'ai copié la feuille d'originie pour garder les données avant changement
à voir ce que ca donne sur ton fichier
 

Pièces jointes

  • Warden.xlsm
    21.4 KB · Affichages: 6

vgendron

XLDnaute Barbatruc
selon la réponse, la distinction est ici dans le code
Code:
For j = 1 To LastCol 'pour chaque colonne
        ValInit = .Cells(2, j) 'valeur à remplacer
        ValRep = .Cells(1, j) 'valeur de remplacement
        dico.Add ValInit, ValRep 'on créé une entrée dans le dictionnaire
    Next j
 

vgendron

XLDnaute Barbatruc
donc tu as la réponse en post 8 pour le code à mettre

à priori le screenupdating=false ne devrait pas servir à grand chose, puisque le code ne travaille pas sur la feuille, mais dans un tablo vba
MAIS ca ne fait jamais de mal
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…