Collage Spéciale Formule

R

Romy

Guest
Bonsoir,
pourriez-vous m'aider, via la correction de ma macro, à coller non pas la cellule (C2) tel je le décris ci-dessous, mais à copier la formule de C2 ?

la macro ci-ap copie la valeur de la cellule C2 dans les cellules de la colonne C chaque fois qu'il existe une ligne non vide dans la colonne B

In fine, je souhaiterais que la macro copie plutôt la formule que la valeur de cette cellule.

mon tableau (c'est un exemple)
Nom Tarif Réel
toto 1 2 12
toto 2 4
toto 3 8
toto 4 10
toto 5 14
toto 6 16
toto 7 19
toto 8 23
toto 9 26
toto 10 29

ma macro :
Sub totoC2()
Range("C3:C65536").ClearContents
Application.ScreenUpdating = False
lig = Range("B65536").End(xlUp).Row
Range("C3:C" & lig) = Range("C2")

Merci par avance
 
M

myDearFriend

Guest
Bonsoir Romy,


Range("C3:C" & lig).Formula = Range("C2").Formula
répondra peut-être à ta question.


Cordialement,
Didier_mDF

myDearFriend-3.gif
 
R

Romy

Guest
Bonsoir Didier,
l'adjonction de Formula, comme tu me le suggères, ne copie pas la formule, mais copie la C2 comme dans la macro initiale !...
Il doit sans doute y avoir une solution, mais je bute !...
 
L

Lupin

Guest
re :

désolé pour l'autre réponse !

Sub totoC2()

Dim Lig, Boucle As Integer
Dim Formule As String

Range("C3:C65536").ClearContents
'Application.ScreenUpdating = False
Lig = Range("B65536").End(xlUp).Row
Formule = Range("C2").Formula
For Boucle = 3 To Lig
Range("C" & Boucle).Value = Formule
Next Boucle

End Sub

Lupin
 
C

CHti160

Guest
bonsoir"Romy" bonsoir "myDearFriend"
Bonsoir le "FORUM"
je viens de tester la proposition demon ami et cela fonctionne
tu devrais aussi si celà n'est pas déjà fait, consulter l'aide d'excel
Exemple
Cet exemple montre comment exécuter une recopie incrémentée dans les cellules A1 à A20 de la feuille Sheet1, à partir de la plage source A1:A2 située dans la feuille Sheet1. Avant d'exécuter cet exemple, tapez 1 dans la cellule A1 et 2 dans la cellule A2.

Set sourceRange = Worksheets("Sheet1").Range("A1:A2")
Set fillRange = Worksheets("Sheet1").Range("A1:A20")
sourceRange.AutoFill Destination:=fillRange
celà peut être une solution en l'aménageant
A+++
Jean Marie
 
R

Romy

Guest
Bonsoir à tous (Lupin, Jean-Marie)

je vais vous paraître peut-être agaçant, mais étant novice, non seulement dans l'approche Forum, mais également dans l'approche Macro (je pensais que cela était plus simple !...) ==> il est entendu que je vais devoir m'acheter un livre sur le VBA, cependant,

Pourriez-vous m'expliquer pourquoi la macro de Lupin, copie bien la formule de la cellule C2, mais ne " l'adapte " pas aux autres cellules ?

Dans mon approche, je souhaite, si par exemple la formule en C2 est (B2+10), lors de la copie sur les autres cellules, lui voir prendre la valeur B3+10 en regard de la cellule C3, B4+10 en regard de C4, etc ...

Je ne sais pas si je me suis bien expliqué, mais j'espère que vous saurez être patient !...
 
C

CHti160

Guest
Salut "Romy" bonsoir à tous

je ne suis pas un pro
mais la formule de lupin ne peut fonctionner

car elle ne fait que recopier la formule de C2 soit A2+B2
et non l'adapter
Formule = Range("C2").Formula
For Boucle = 3 To Lig
Range("C" & Boucle).Value =Formule[/b )

celle de mon ami mDF incremente la formule soit A3+B3.....etc

A+++
Jean Marie
 
C

CHti160

Guest
Re "Romy" et le "Forum"
un petit exemple en pièce jointe
je te conseille d'utiliser l'enregistreur de Macro de la barre "VISUAL BASIC"
tu pourras ainsi apprendre de nombreuses choses....
A+++
Jean Marie
 

Pièces jointes

  • SommeV1.zip
    8.6 KB · Affichages: 23
R

Romy

Guest
Jean-Marie,

j'ai beaucoup de mal à comprendre !...

mais peut-être que si je vous joignais mon fichier "toto", vous seriez à même de mieux me faire comprendre vos solutions.

je viens de tester ce que tu me préconises en dernier ==> cela me permet certes de copier la formule dans les cellules depuis C3, mais avec un décalage :

en regard de C3, j'ai la formule à l'identique de C2 soit (B2*6) et non (B3*6)
en regard de C4, j'ai la formule (B3*6) au lieu de (B4*6), etc ...

c'est presque bon, avec cependant un "petit" décalage !...

dans mon fichier, j'ai nommé la macro Lupin et la macro Didier

@+ de vous lire
 

Pièces jointes

  • test.zip
    8.6 KB · Affichages: 22
  • test.zip
    8.6 KB · Affichages: 14
  • test.zip
    8.6 KB · Affichages: 17
C

CHti160

Guest
re re "Romy"
tu modifies la solution de "Didier_mDF"
juste une adaptation au niveu de la plage, inclure la plage où se trouve la formule
Sub Didier()
Range("C3:C65536").ClearContents
Application.ScreenUpdating = False
Lig = Range("B65536").End(xlUp).Row
Range("C2:C" & Lig).Formula = Range("C2").Formula

End Sub
A+++
Jean Marie
 
R

Romy

Guest
Jean-Marie,

ton coup de main final (sans oublier ceux de tous les intervenants) va me permettre de poursuivre le travail sur lequel je bosse.

encore une fois merci pour votre aide à tous et bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 360
Messages
2 087 592
Membres
103 604
dernier inscrit
CAROETALEX59