Diviser des colones pas 1000 avec VBA

Résolu
bobytto Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

Je souhaire divisier des plages de cellules dynamiques (la longueur n'est pas toujours la meme) par 1000 avec VBA.

Mes colonnes sont les suivantes et commencent a la ligne 4 : ("I:J,L:M,P:Q,T:U,W:X,AA:AB").

Merci pour votre aide,

Ben

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, c'est effectivement faisable.
dans le cas où tu as peu d'expérience en VBA, as-tu envisagé de faire cela avec des formules?
1
Utilisateur anonyme
 
Bonjour,

S'il veut que le résultat soit dans la cellule d'origine avec les formules ça va merder.
0
bobytto Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
oui avec des formules et specialement avec le "copy - divide into" j'ai deja fait mais la ca serait pour le faire automatiquement via la macro.
Je vais trouver une solution
Merci pour vos reponses quand meme
0
Utilisateur anonyme
 
Je n'ai pas de quoi tester sous la main, mais ça n'est qu'une simple boucle for.

Tapé de tête, donc un truc un peu comme ca.
Dim derniereLigne as integer
derniereLigne =10'là tu mettras la bonne valeur

For i = 4 to derniereLigne
     Activesheet.Cells(i,9).Value = Activesheet.Cells(i,9).Value/1000'si je ne me suis pas trompé la colonne I c'est 9
     Activesheet.Cells(i,10).Value = Activesheet.Cells(i,10).Value/1000'colonne L
'Etc.
Next i

0
Utilisateur anonyme
 
Par contre c'est lent à exécuter. Donc c'est valable si tu as peu de lignes à calculer (une centaine max).
Pour que ça calcule plus vite, il faut passer par les tableaux.
https://silkyroad.developpez.com/vba/tableaux/
0
bobytto Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Hello Whismeril,

En fait, j'ai environ 3000 lignes a chaque fois et ce montant peu varier d'un classeur a l'autre...

Merci pour ta reponse quand meme!
0
Utilisateur anonyme
 
Quand même?
Qu'est ce que t'as pas compris dans il faut passer par les tableaux, immédiatement suivi par un lien vers un tuto qui décrit précisément comment faire?
0
bobytto Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
1) Je suis allé voir ton lien.
2) "quand meme" = ce n'était pas mon but premier mais je vais passer par les tableaux.
3) Tu devrais faire un tour dehors pour prendre l'air si tu es tendu.
0
Utilisateur anonyme
 
Je ne suis pas tendu, mais surpris d'une telle réponse, je te donne les 2 solutions, ben oui y'en a pas 36, soit tu boucles (for ou for each mais ça reste une boucle) sur les cellules soit tu boucles sur un tableau.

Et comme chez moi
"quand même"
ne veut pas dire
ce n'était pas mon but premier mais je vais passer par les tableaux.
mais plutôt "ça ne répond pas à mon besoin", je ne suis dit encore (ils sont nombreux sur le forum...) à ne pas prendre la peine d'aller essayer ce qu'on lui propose et attend du tout cuit.

Alors certes je n'ai pas interprété ton "quand même" comme il faut, mais t'as pas été franchement explicite non plus.

EDIT: correction orthographique
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour tout le monde,

Complément d'information nécessaire :
Mes colonnes sont les suivantes et commencent a la ligne 4 : ("I:J,L:M,P:Q,T:U,W:X,AA:AB")

Tu veux quoi ?
1- que I, J, L, M, P, Q etc soient toutes divisées par 1000
2- que J = I/1000, M = L/1000, Q = P /1000 etc...
0
bobytto Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Pijaku,

Je cherche a diviser toutes ces colonnes par 1000, donc choix 1.
Je suis en train d'etudier la proposition de Whismeril mais si tu connais un autre moyen, je suis preneur car je souhaite agrementer mon bagage technique sur VBA!
0