LE NEWSMAGAZINE Nº1 DES NOUVELLES TECHNOLOGIES
197 utilisateurs connectés

formule excel en VBA

art_bras_cames le 21 février 2009 à 20h52
Bonsoir à tous

Je rencontre un problème avec formule excel enregistrée dans une macro.
excel : =si(b5<>"";ax5;"")
VBA : ActiveCell.FormulaR1C1 = "=IF(RC[1]<>"""",RC[49],"""")"



Voici la macro :

Workbooks.Open Filename:="M:\PC\doc chsct.xls"
Windows("rapports journaliers.xls").Activate
Sheets("Pb charge").Select
Range("D2:O26").Select
Selection.Copy
Windows("doc chsct.xls").Activate
Sheets("Pb Charges").Select
Range("B5").Select
Selection.Insert Shift:=xlDown
Range("A5:A29").Select
Range("A29").Activate
Selection.Insert Shift:=xlDown
Range("A5").Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]<>"""",RC[49],"""")"
Range("A5").Select
Selection.AutoFill Destination:=Range("A5:A29"), Type:=xlFillDefault
Range("A5:A29").Select
Range("A5:M29").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A5:M300").Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Key2:=Range("B5") _
, Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
Range("a1").Select

Le problèmes est le suivant lorsque la macro est enregistrée dans un classeur dans lequel il n'y a qu'un seul module, elle fonctionne bien.
Mais lorsqu'il y a plusieurs modules ou lorsque je l'intégre dans une autre macro, cela ne fonctionne plus, il y a un bug dans la ligne de la formule ActiveCell.FormulaR1C1 = "=IF(RC[1]<>"""",RC[49],"""")"


Merci de votre aide
A+
Gorfael le 22 février 2009 à 23h24
Salut art_bras_cames et le forum
Le même code en plus clair donnerait quelque chose comme
Workbooks.Open Filename:="M:\PC\doc chsct.xls"
Workbooks("rapports journaliers.xls").Sheets("Pb charge").Range("D2:O26").Copy
Sheets("Pb Charges").Activate
Range("B5").Insert Shift:=xlDown
Range("A5:A29").Insert Shift:=xlDown
[A5].formulalocal ="=si(B5<>"""";AX5;"""")"
Range("A5").AutoFill Destination:=Range("A5:A29"), Type:=xlFillDefault
Range("A5:M29").Copy
Range("A5:M29").PasteSpecial Paste:=xlPasteValues
Range("A5:M300").Sort Key1:=Range("A5"), Order1:=xlAscending, Key2:=Range("B5"), _
Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
Application.CutCopyMode = False
ou quelque chose d'approchant
Mais lorsqu'il y a plusieurs modules ou lorsque je l'intégre dans une autre macro, cela ne fonctionne plus, il y a un bug dans la ligne de la formule
Pas d'infos assez précises pour savoir d'où peut provenir le problème. suit le fonctionnement en pas-à-pas et vérifies ce que fait la macro
Sur quel module ? quel code total ?
A+
-------
Plus tu es moins précis, moins les réponses sont plus adaptées!
La qualité et la précision de la réponse sont proportionnelles à celles de la question, et la conditionne.
art_bras_cames le 23 février 2009 à 16h04
Bonjour,

Mercci pour la formule, cela fonctionne
A+


À PROPOS DU FORUM MICRO HEBDO

LES FORUMS THÉMATIQUES ET TECHNIQUES

LES FORUMS GÉNÉRAUX

ARCHIVES DU FORUM

publicité
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Internext - 01net.