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 -
olympiklyon Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Problème vba [Excel]
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
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
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,
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...)
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
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