Calcul dans une cellule 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 8/06/2011 à 13:49
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 - 9 juin 2011 à 08:16
olympiklyon Messages postés 63 Date d'inscription dimanche 21 novembre 2010 Statut Membre Dernière intervention 8 octobre 2012 - 9 juin 2011 à 08:16
A voir également:
- Calcul dans une cellule VBA [excel]
- Calcul moyenne excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Excel compter cellule couleur sans vba - Guide
9 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
8 juin 2011 à 13:50
8 juin 2011 à 13:50
Bonjour,
tout dépend ou tu es positionné au moment ou tu lances ta macro :
es tu sur une plage de cellule, es-tu sur une cellule???
Si tu es sur une cellule, les codes suivants fonctionnent :
Ligne = ActiveCell.Row
L = Ligne
Num = "D" & L
Nyu = "I" & L
Par contre, il doit te manquer un bout de code car celui la ne fonctionne pas, c'est sur :
ActiveCell.formla(
que voulais-tu faire à ce moment la de ton code?
tout dépend ou tu es positionné au moment ou tu lances ta macro :
es tu sur une plage de cellule, es-tu sur une cellule???
Si tu es sur une cellule, les codes suivants fonctionnent :
Ligne = ActiveCell.Row
L = Ligne
Num = "D" & L
Nyu = "I" & L
Par contre, il doit te manquer un bout de code car celui la ne fonctionne pas, c'est sur :
ActiveCell.formla(
que voulais-tu faire à ce moment la de ton code?
olympiklyon
Messages postés
63
Date d'inscription
dimanche 21 novembre 2010
Statut
Membre
Dernière intervention
8 octobre 2012
1
8 juin 2011 à 14:04
8 juin 2011 à 14:04
Au début, Je suis sur une plage de cellule dont je veux mémoriser le numéro de la ligne (par exemple 23).
Après ActiveCell.formla j'aimerais faire =D23 - I23. mais le 23 peut changer.
Après ActiveCell.formla j'aimerais faire =D23 - I23. mais le 23 peut changer.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
8 juin 2011 à 14:13
8 juin 2011 à 14:13
Bonjour,
si tu es sur une plage de cellule normalement
Ligne = ActiveCell.Row 'te récupères le numéro de ligne de ta première cellule de sélectionnée mais normalement ca marche.
maintenant remplace :
ActiveCell.formla(
par
ActiveCell.FormulaR1C1 = "=R" & l & "C8-R" & l & "C9"
Ca devrait marcher
si tu es sur une plage de cellule normalement
Ligne = ActiveCell.Row 'te récupères le numéro de ligne de ta première cellule de sélectionnée mais normalement ca marche.
maintenant remplace :
ActiveCell.formla(
par
ActiveCell.FormulaR1C1 = "=R" & l & "C8-R" & l & "C9"
Ca devrait marcher
olympiklyon
Messages postés
63
Date d'inscription
dimanche 21 novembre 2010
Statut
Membre
Dernière intervention
8 octobre 2012
1
8 juin 2011 à 14:22
8 juin 2011 à 14:22
Re,
ça ne sélectionne pas les colonnes du bon fichier. Je mets la formule dans "essai n1kjh.xls" et les cellules sélectionnées dans "BUFFET4P Missi.xls"
Merci
ça ne sélectionne pas les colonnes du bon fichier. Je mets la formule dans "essai n1kjh.xls" et les cellules sélectionnées dans "BUFFET4P Missi.xls"
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
8 juin 2011 à 14:39
8 juin 2011 à 14:39
Je n'ai pas tout suivi.
dis moi en français ce que cette macro est censée faire car pour moi techniquement, elle fonctionne.
Voici ce qu'elle fait :
tu sélectionnes une plage de cellule du classeur Buffet. (et tu enregistres le numéro de ligne de la première cellule par exemple 27)
Tu demandes de copier cette plage dans le fichier essai dès qu'une ligne est vide
Tu copies la cellule I1 pour la coller à un endroit de ton nouveau fichier (par exemple, sur la 11ème ligne)
en suite, tu lui demandes de faire dans le classeur essai d - i du numéro de lignes de ta plage copiée soit d27-i27.
Tu sauvegardes et tu fermes le fichier essai.
Dis moi ce qui ne vas pas??
dis moi en français ce que cette macro est censée faire car pour moi techniquement, elle fonctionne.
Voici ce qu'elle fait :
tu sélectionnes une plage de cellule du classeur Buffet. (et tu enregistres le numéro de ligne de la première cellule par exemple 27)
Tu demandes de copier cette plage dans le fichier essai dès qu'une ligne est vide
Tu copies la cellule I1 pour la coller à un endroit de ton nouveau fichier (par exemple, sur la 11ème ligne)
en suite, tu lui demandes de faire dans le classeur essai d - i du numéro de lignes de ta plage copiée soit d27-i27.
Tu sauvegardes et tu fermes le fichier essai.
Dis moi ce qui ne vas pas??
olympiklyon
Messages postés
63
Date d'inscription
dimanche 21 novembre 2010
Statut
Membre
Dernière intervention
8 octobre 2012
1
8 juin 2011 à 14:46
8 juin 2011 à 14:46
ça doit faire ce que tu dit. Mais ça fait H11-I11 de "Essai" et pas le D27-I27 de "Buffet"
sirefalas
Messages postés
219
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
12 février 2014
8
Modifié par sirefalas le 8/06/2011 à 14:48
Modifié par sirefalas le 8/06/2011 à 14:48
question bête, il y a tout ton code dans ton message?
Et quel est le message d'erreur quand tu veux le lancer?
Et quel est le message d'erreur quand tu veux le lancer?
olympiklyon
Messages postés
63
Date d'inscription
dimanche 21 novembre 2010
Statut
Membre
Dernière intervention
8 octobre 2012
1
8 juin 2011 à 14:56
8 juin 2011 à 14:56
non mais après ActiveCell.formula faut rajouter R1C1 = "=R" & l & "C8-R" & l & "C9"
Il marche mais prend pas les bonnes cellules voir réponse précédente.
Il marche mais prend pas les bonnes cellules voir réponse précédente.
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
8 juin 2011 à 14:53
8 juin 2011 à 14:53
re,
donc je vois ou est le pb :
ub Macro4()
'
' Macro4 Macro
'
' Touche de raccourci du clavier: Ctrl+o
Ligne = ActiveCell.Row
L = Ligne
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
ActiveSheet.Paste
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("BUFFET4P Missi.xls").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, 4).Select
Selection.ClearContents
Windows("BUFFET4P Missi.xls").Activate
ActiveCell.FormulaR1C1 = "=R" & ligne & "C8-R" & ligne & "C9"
donc je vois ou est le pb :
ub Macro4()
'
' Macro4 Macro
'
' Touche de raccourci du clavier: Ctrl+o
Ligne = ActiveCell.Row
L = Ligne
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
ActiveSheet.Paste
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("BUFFET4P Missi.xls").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, 4).Select
Selection.ClearContents
Windows("BUFFET4P Missi.xls").Activate
ActiveCell.FormulaR1C1 = "=R" & ligne & "C8-R" & ligne & "C9"
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
8 juin 2011 à 14:59
8 juin 2011 à 14:59
pardon, je me suis trompée, remplaces :
ActiveCell.FormulaR1C1 = "=R" & ligne & "C8-R" & ligne & "C9"
par :
ActiveCell.FormulaR1C1 = "=R" & ligne & "C4-R" & ligne & "C9"
ActiveCell.FormulaR1C1 = "=R" & ligne & "C8-R" & ligne & "C9"
par :
ActiveCell.FormulaR1C1 = "=R" & ligne & "C4-R" & ligne & "C9"
olympiklyon
Messages postés
63
Date d'inscription
dimanche 21 novembre 2010
Statut
Membre
Dernière intervention
8 octobre 2012
1
8 juin 2011 à 15:07
8 juin 2011 à 15:07
Ah si le calcul se fait mais en I1 de "Buffet"
Très étrange
Très étrange
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
8 juin 2011 à 15:09
8 juin 2011 à 15:09
tu avais oublié de sélectionner la bonne feuille
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
8 juin 2011 à 15:10
8 juin 2011 à 15:10
Windows("BUFFET4P Missi.xls").Activate 'sélectionnes ta feuille
Selection.Offset(0, 4).Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=R" & ligne & "C4-R" & ligne & "C9"
Selection.Offset(0, 4).Select
Selection.ClearContents
ActiveCell.FormulaR1C1 = "=R" & ligne & "C4-R" & ligne & "C9"
olympiklyon
Messages postés
63
Date d'inscription
dimanche 21 novembre 2010
Statut
Membre
Dernière intervention
8 octobre 2012
1
8 juin 2011 à 15:17
8 juin 2011 à 15:17
Selection.Offset(0, 4).Select
Selection.ClearContents
ça me sert à sélectionner la cellule où je souhaite y placer la formule dans "essai".
Selection.ClearContents
ça me sert à sélectionner la cellule où je souhaite y placer la formule dans "essai".
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
155
8 juin 2011 à 16:22
8 juin 2011 à 16:22
sub Macro4()
'
' Macro4 Macro
'
' Touche de raccourci du clavier: Ctrl+o
Ligne = ActiveCell.Row
L = Ligne
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
ActiveSheet.Paste
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("BUFFET4P Missi.xls").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, 4).Select
Selection.ClearContents
Windows("BUFFET4P Missi.xls").Activate
cells(ligne,5).select
ActiveCell.FormulaR1C1 = "=R" & ligne & "C8-R" & ligne & "C9"
'
' Macro4 Macro
'
' Touche de raccourci du clavier: Ctrl+o
Ligne = ActiveCell.Row
L = Ligne
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
ActiveSheet.Paste
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("BUFFET4P Missi.xls").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, 4).Select
Selection.ClearContents
Windows("BUFFET4P Missi.xls").Activate
cells(ligne,5).select
ActiveCell.FormulaR1C1 = "=R" & ligne & "C8-R" & ligne & "C9"
olympiklyon
Messages postés
63
Date d'inscription
dimanche 21 novembre 2010
Statut
Membre
Dernière intervention
8 octobre 2012
1
9 juin 2011 à 08:16
9 juin 2011 à 08:16
merci