• Initiateur de la discussion Initiateur de la discussion zorgaz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Z

zorgaz

Guest
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

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:
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.
 
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

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)

😀

edit : bam bhbh balance le copier spécial multiplication 😉 que du lourd 😀
 
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



😀

edit : bam bhbh balance le copier spécial multiplication 😉 que du lourd 😀

😀😀
Je te rejoins... D'ailleurs ma solution proposé était bien celle par formule 😉
Mais sur 37 000 lignes ! Sa aussi sa peut faire lourd ! 😛
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
639
Réponses
10
Affichages
408
Réponses
6
Affichages
150
Réponses
2
Affichages
187
Deleted member 453598
D
D
  • Question Question
Réponses
5
Affichages
247
Didierpasdoué
D
Retour