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 )
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...
Dans le même esprit que UBOT303, avec cette formule à placer en H1 et à tirer vers le bas :
=SI(OU(E1="PK000017";E1="PK000018";E1="PK000201";E1="PK000215";E1="PK000256");2*G1;"")
Et je rejoints Geo : le titre est faux en plus parce que vu la simplicité du problème : on ne passe pas par une macro mais par une formule avec une condition
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.
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
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
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
edit : bam bhbh balance le copier spécial multiplication que du lourd
Il a demandé de la précision et de la réactivité en titrant son post très mal
Résultat : on est la et on attend ces retours/remarques/suggestions/réponses