Diviser des colones pas 1000 avec VBA

Résolu/Fermé
bobytto Messages postés 26 Date d'inscription mardi 10 janvier 2017 Statut Membre Dernière intervention 6 juillet 2020 - 7 févr. 2017 à 17:43
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 - 10 févr. 2017 à 19:01
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 22696 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
7 févr. 2017 à 21:27
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
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
8 févr. 2017 à 06:02
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 mardi 10 janvier 2017 Statut Membre Dernière intervention 6 juillet 2020
8 févr. 2017 à 16:35
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
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
8 févr. 2017 à 06:11
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
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
Modifié par Whismeril le 8/02/2017 à 06:15
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 mardi 10 janvier 2017 Statut Membre Dernière intervention 6 juillet 2020
8 févr. 2017 à 16:34
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
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
8 févr. 2017 à 17:00
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 mardi 10 janvier 2017 Statut Membre Dernière intervention 6 juillet 2020
8 févr. 2017 à 17:38
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
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
Modifié par Whismeril le 8/02/2017 à 18:12
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
9 févr. 2017 à 07:52
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 mardi 10 janvier 2017 Statut Membre Dernière intervention 6 juillet 2020
10 févr. 2017 à 16:50
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