Problème vba [Excel]

Résolu/Fermé
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 - Modifié par olympiklyon le 9/06/2011 à 08:36
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 - 10 juin 2011 à 08:09
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] et tout le calcul se fait sur [BUFFET4P Mission]. Je ne sais pas faire référence à l'autre car la formule est bonne. Ça sélectionne les cellules qu'il faut mais pas sur le bon classeur

A+
olympikyon =)
A voir également:

2 réponses

paulnero Messages postés 4 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 9 juin 2011 1
9 juin 2011 à 08:42
Je ne suis pas pro du VBA,mais dans mais anciennes lectures ,je me souviens que tu pouvias créer des macros en enregistrant tes tâches.Cela va te générer le code.
Par exemple:Tu peux créer une macro qui transfert les donnés d'un classeur A vers B,en selectionnant ou non des cellules.

Pour le faire sur Excel (2007)
affichage-->macro-->enregistrer une macro.Puis tu suis les instruction et enregistre ta macro dans le disque dur pour visualiser le code et le réutiliser.


Paulnero
1
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 1
9 juin 2011 à 09:00
Ça ne va pas car j'ai des références à une ligne enregistrée au début de ma macro.
0
paulnero Messages postés 4 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 9 juin 2011 1
9 juin 2011 à 10:28
Déja tu nous a parlé de deux classeurs et non deux feuilles, car en lisant Ctesias, je vois qu'il n' a pas bien saisi ta requête.
Pour moi je te conseillerai de regarder bien des exemples de code VBA.Si tu as des bonnes connaissance en anglais informatique je te conseille ceci:
https://www.ozgrid.com/forum/index.php?thread/68240-remove-duplicates-other-criteria/&pageNo=1
ou encore
https://forum.excel-pratique.com/viewtopic.php?forum_uri=excel&t=23789&start=

paulnero
0
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 1
9 juin 2011 à 13:55
Merci, mais ça correspond pas à ce que je veux. Ce qui est le plus difficile c'est que la ligne change selon ma sélection avant la macro.
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
9 juin 2011 à 08:59
Salut!

Si j'ai bien compris, tu as une formule dans une feuille, et tu veux le resultat dans ton autre feuille?

Alors, si ton calcule ets dans la feuille [essai n1kjh], celluls A1, et que tu veux le resultat dans la feuille [BUFFET4P Mission], cellule B3, tu met dans la celluls A1 ta formule, et dans B3 de l'autre feuille:

=[essai n1kjh]!A1

Maintenant, je vais te fairez la réponse VBA:

Dans ton code, tu devra mettre :

Sheets("[BUFFET4P Mission]").Cells(3,2).value = Sheets("[essai n1kjh]").cells(1,1).Value


Sachant que Sheets("") fais appel à la feuille, et que Cells s'utilise Cells(ligne, colonne). (tout en chiffre).

Je sais pas si ca a repondu à ta question, mai sinon, tu peux expliquer un peu plus.

Ctesias,
1
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 1
Modifié par olympiklyon le 9/06/2011 à 09:19
Meci de votre réponse. Ce n'est trop ça. C'est 2 classeurs différents. Le calcul fait référence à (ligne = ActiveCell.Row) tout au début de la macro. ca doit reprendre cette ligne (prenons la ligne 24 mais elle change selon l'action avant la macro) et faire D24 - I24.
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
9 juin 2011 à 09:39
Essais:
Workbook("classeur1").Sheets("[BUFFET4P Mission]").Cells(3,2).value = Workbook("classeur2").Sheets("[essai n1kjh]").cells(1,1).Value

Sinon, je ne comprend pas trop ce que tu me dis ici:
ca doit reprendre cette ligne (prenons la ligne 24 mais elle change selon l'action avant la macro) et faire D24 - I24.

Peu-tu m'éclairer? (pas avec une lampe...)
0
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 1
9 juin 2011 à 09:50
Je te montre ma macro entière et je te explique
Sub Macro4()
'
' Macro4 Macro
'
' Touche de raccourci du clavier: Ctrl+o

ligne = ActiveCell.Row
nom = ActiveWorkbook.Name


Selection.Copy
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

' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
NbLigne = NbLigne + 1
Selection.Offset(1, 0).Select
Loop

Selection.PasteSpecial Paste:=xlPasteValues

MsgBox "Ligne " & ActiveCell.Row
Range("B7").Select

' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
NbLigne = NbLigne + 1
Selection.Offset(1, 0).Select
Loop

Windows(nom).Activate
Range("I1").Select
Selection.Copy
Windows("essai n1kjh.xls").Activate
Selection.Offset(-1, -1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.Offset(0, 3).Select
Selection.ClearContents
Selection.Offset(0, 1).Select
Selection.ClearContents

ActiveCell.FormulaR1C1 = "=R" & ligne & "C4-R" & ligne & "C8"

Windows("essai n1kjh.xls").Activate
ActiveWorkbook.Save
Workbooks("essai n1kjh.xls").Close
Windows(nom).Activate


End Sub
0
Ctesias Messages postés 724 Date d'inscription lundi 16 mai 2011 Statut Membre Dernière intervention 1 décembre 2011 36
9 juin 2011 à 09:53
Tu commente jamais tes codes? ^^'
0
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 1
9 juin 2011 à 09:57
si excuse-moi je le fais et je te renvoi
0