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
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 =)
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:
- Problème vba [Excel]
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
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
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
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
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
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,
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,
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
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.
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
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...)
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...)
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
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
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
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
9 juin 2011 à 09:53
Tu commente jamais tes codes? ^^'
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
9 juin 2011 à 09:57
si excuse-moi je le fais et je te renvoi
9 juin 2011 à 09:00
9 juin 2011 à 10:28
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
9 juin 2011 à 13:55