Problème Formule VBA

olympiklyon

XLDnaute Nouveau
Bonjour,

J'ai problème au niveau d'un calcul [essai n1kjh] faisant référence à un autre classeur [BUFFET4P Mission]

Voici mon calcul
ActiveCell.FormulaR1C1 = "=R" & ligne & "C4-R" & ligne & "C9"

Le résultat doit s'écrire sur [essai n1kjh] avec des valeurs de [BUFFET4P Mission]. Je ne sais pas faire référence à l'autre classeur car la formule est bonne. Ça sélectionne les cellules qu'il faut mais pas sur le bon classeur [BUFFET4P Mission]. Ce calcul se situe dans une macro. Au début de la macro, je "mémorise" le numéro de ligne pour le réutilisé dans cette formule.
 
Dernière édition:

Gorfael

XLDnaute Barbatruc
Re : Problème Formule VBA

Salut olympiklyon et le forum
Désolé de ne pas pouvoir te répondre, mais je ne suis pas habilité à un tel niveau de secret. :p


  1. Bienvenue
  2. Il n'y a ni devin, ni télépathe sur ce site
  3. quand on veut dépanner une macro, on a besoin de tout le code. Ouais, je sais, il n'y en a pas besoin pour la formule, mais d'une part on a pas les données permettant d'y répondre (tu prends une valeur d'une cellule d'un classeur toi ? Moi, je suis obligé de prendre la valeur d'une cellule dans une feuille du classeur...) mais quand je vois "ActiveCell", je me dis que le code a besoin d'un lifting !
tu peux toujours essayer
Code:
.FormulaR1C1 = "=[BUFFET4P Mission]'" & sheets(1).name & "'!R" & ligne & "C4-R" & ligne & "C9"
A+
 

olympiklyon

XLDnaute Nouveau
Re : Problème Formule VBA

Voici toute ma macro avec quelques explications

Code:
'Avant la macro je selectionne une plage sur 8 colonnes et 1 ligne
Sub Macro4()

'
' Touche de raccourci du clavier: Ctrl+o
' Mémorise la ligne
ligne = ActiveCell.Row
' Mémorise nom du fichier
nom = ActiveWorkbook.Name
'copie de la plage précédemment selectionnée
Selection.Copy
'ouvre le fichier qui demande les pièces
Workbooks.Open "C:\Documents and Settings\JeanMarie\Bureau\essai n1kjh"
Windows("essai n1kjh.xls").Activate
' Selectionne la première cellule du tableau
Range("B7").Select
' Cherche la première ligne vide
Do While Not (IsEmpty(ActiveCell))
NbLigne = NbLigne + 1
Selection.Offset(1, 0).Select
Loop
'Colle les veleurs des cellules
Selection.PasteSpecial Paste:=xlPasteValues
' Selectionne la première cellule du tableau
Range("B7").Select

' Cherche la première ligne vide
Do While Not (IsEmpty(ActiveCell))
NbLigne = NbLigne + 1
Selection.Offset(1, 0).Select
Loop
'Active le premier fichier
Windows(nom).Activate
'Prend le titre de la feuille
Range("I1").Select
'Copie du titre
Selection.Copy
Windows("essai n1kjh.xls").Activate
'permet de se mettre dans la bonne cellule et colle le titre
Selection.Offset(-1, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Selectionne une cellule et supprime le contenu
Selection.Offset(0, 3).Select
Selection.ClearContents
'Selectionne une cellule et supprime le contenu
Selection.Offset(0, 1).Select
Selection.ClearContents

'Formule posant problème, la formule est bonne les adresse de cellule également _
mais ne prends pas les cellule de la bonne feuille "nom"
ActiveCell.FormulaR1C1 = "=R" & ligne & "C4-R" & ligne & "C8"

'Ferme et enregistre le fichier
Windows("essai n1kjh.xls").Activate
ActiveWorkbook.Save
Workbooks("essai n1kjh.xls").Close
Windows(nom).Activate "C9"
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 879
Membres
103 981
dernier inscrit
vinsalcatraz