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.
à 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)
une question: les lignes 1 et 2
les valeurs de la ligne 1 sont remplacées par celles de la ligne 2 ou c'est le contraire (valeur de ligne 2 remplacées par ligne1) ??
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
une question: les lignes 1 et 2
les valeurs de la ligne 1 sont remplacées par celles de la ligne 2 ou c'est le contraire (valeur de ligne 2 remplacées par ligne1) ??
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
Grand merci a toi
J'apprécie beaucoup ta réactivité
Et aussi la vitesse d'exécution sur un grand tableau.
Et surtout j'ai assimilé et mieux appréhendé la logique du tab()