Macro

zorgaz

XLDnaute Nouveau
bonjour
comment faire une macro pour multiplier par 2 juste le nombre de la colonne g
mais juste sur ces codes ( j ai 37000 lignes sur le fichier d origine )

PK000017
PK000018
PK000201
PK000215
PK000256

merci de votre aide
 

Pièces jointes

  • Nouveau Feuille Microsoft Excel.xls
    26.5 KB · Affichages: 39
  • Nouveau Feuille Microsoft Excel.xls
    26.5 KB · Affichages: 40
  • Nouveau Feuille Microsoft Excel.xls
    26.5 KB · Affichages: 41

Ubot303

XLDnaute Occasionnel
Re : Macro

Bonjour,

Pourquoi ne rajoutes-tu pas une colonne avec =G2*2 puis tu tires la formule sur les 37 000 lignes?

:D
 

Pièces jointes

  • test.xls
    28.5 KB · Affichages: 36
  • test.xls
    28.5 KB · Affichages: 43
  • test.xls
    28.5 KB · Affichages: 39

GeoTrouvePas

XLDnaute Impliqué
Re : Macro

Salut Zorgaz et Ubot

Si j'ai bien compris ta question qui est tout sauf claire, voilà une macro qui devrait t'aider :

Code:
 Sub test
i = 1
While Cells(i, 1) <> 0
    If Cells(i, 5) = "PK000017" Or Cells(i, 5) = "PK000018" Or Cells(i, 5) = "PK000201" Or Cells(i, 5) = "PK000215" Or Cells(i, 5) = "PK000256" Then
        Cells(i, 8) = Cells(i, 7) * 2
    End If
    i = i + 1
Wend
End Sub

Petite remarque au passage : "Macro" comme sujet, c'est pas terrible. Si tout le monde était aussi explicite, un post sur deux s'appellerait "Macro" et l'autre "formule" ...

Edit : 2ème petite remarque : Un up au bout d'une heure, ça fait pas très sérieux...
 
Dernière édition:

Benjy

XLDnaute Occasionnel
Re : Macro

La macro n'est pas une mauvaise idée dans ce cas... Car avec la formule on écrit "rien" dans de nombreuses cases.
La macro de Géo ( très bien pensée au passage.. ) n'écrit elle, que dans les cellules concernées.
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Macro

Bonsoir,

pour traiter 37000 lignes, peut-être avec le code dans ce fichier

Nota, pour que cela fonctionne dans ton fichier, il faut que tu mettes des titres de A1 à G1, et qu'en L1, tu mettes le même titre que en E1.
Sous L1, tu mets tes conditions :

PK000017
PK000018
PK000201
PK000215
PK000256

bref, regarde, et dis quoi...

Le code :

Code:
Sub multipli()
Application.ScreenUpdating = False
Range("E1:E" & [E65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("L1:L6"), Unique:=False
[K1] = 2
[K1].Copy
Range("_FilterDataBase").Offset(1, 2).Resize(Range("_FilterDataBase"). _
      Rows.Count - 1).SpecialCells(xlCellTypeVisible).PasteSpecial Operation:=xlMultiply
ActiveSheet.ShowAllData
[K1].Clear
End Sub

Bonne soirée
 

Pièces jointes

  • Nouveau Feuille Microsoft Excel_v1.zip
    11.7 KB · Affichages: 15

Ubot303

XLDnaute Occasionnel
Re : Macro

Benjy : mouais, passer par une macro nécessite trop de conditions (sécurité moyenne...) et un niveau Excel plus important pour s'orienter vers ce type de solution avec un problème aussi simple :)

Si tu ne veux pas écrire "", autant demander à l'auteur ce qu'il faut mettre dans ce cas... Peut-être souhaite t'il un

=SI(OU(E1="PK000017";E1="PK000018";E1="PK000201";E 1="PK000215";E1="PK000256");2*G1;G1)

:D

edit : bam bhbh balance le copier spécial multiplication ;) que du lourd :D
 

Benjy

XLDnaute Occasionnel
Re : Macro

Benjy : mouais, passer par une macro nécessite trop de conditions (sécurité moyenne...) et un niveau Excel plus important pour s'orienter vers ce type de solution avec un problème aussi simple :)

Si tu ne veux pas écrire "", autant demander à l'auteur ce qu'il faut mettre dans ce cas... Peut-être souhaite t'il un



:D

edit : bam bhbh balance le copier spécial multiplication ;) que du lourd :D

:D:D
Je te rejoins... D'ailleurs ma solution proposé était bien celle par formule ;)
Mais sur 37 000 lignes ! Sa aussi sa peut faire lourd ! :p
 

Discussions similaires

Réponses
20
Affichages
451
Réponses
3
Affichages
332

Statistiques des forums

Discussions
313 344
Messages
2 097 335
Membres
106 916
dernier inscrit
Soltani mohamed