Problème vba [Excel]

Résolu
olympiklyon Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -  
olympiklyon Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   -
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 =)

2 réponses

  1. paulnero Messages postés 4 Statut Membre 1
     
    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
    1. olympiklyon Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   1
       
      Ça ne va pas car j'ai des références à une ligne enregistrée au début de ma macro.
      0
    2. paulnero Messages postés 4 Statut Membre 1
       
      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
    3. olympiklyon Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   1
       
      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
  2. Ctesias Messages postés 786 Statut Membre 36
     
    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
    1. olympiklyon Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   1
       
      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
    2. Ctesias Messages postés 786 Statut Membre 36
       
      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
    3. olympiklyon Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   1
       
      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
    4. Ctesias Messages postés 786 Statut Membre 36
       
      Tu commente jamais tes codes? ^^'
      0
    5. olympiklyon Messages postés 63 Date d'inscription   Statut Membre Dernière intervention   1
       
      si excuse-moi je le fais et je te renvoi
      0