Copier formules sans les valeurs à côté

bonjour à tous!

je voudrai copier des formules d'un classeur à l'autre mais je fais face a un problème:

Le classeur source ( 1) et le classeur destination (2) contiennent le même tableau.

le classeur 1 contient en alternance une ligne sur 2 une ligne de formules et une ligne de valeurs.

comment faire pour copier (sans le faire ligne par ligne) les formules du classeur 1 dans le classeur 2 sans copier les valeurs qui en trouve sur les lignes n'ayant pas de formule?

qd je copie le bloc du classeur 1 et que je fais coller formule, cela me colle les formules ET les valeur du classeur 1....

Par avance merci pour votre aide.... n'hésitez pas a me demander des précisions si je n'ai pas été suffisamment clair...

à Bientôt,

ZoL

Bonjour,

normalement, si vous utilisez collage spécial formule, seule les cellules avec formules seront prise en compte.

Bonjour Fred35,

Merci pour votre réponse...

malheureusement ce n'est pas le cas, j'ai refais des tests avec deux classeurs basiques avec 4 lignes et 4 colonnes et des formules une ligne sur deux en alternance avec une ligne de données... et il me copie les formules ET les nombres dans le classeur destination...

(je confirme que je fais bien collage spécial formule)...

Bonjour,

La copie ligne par ligne semble bien adaptée.

Peux-tu dire pourquoi cette méthode te gêne ?

A+

Bonjour Frangy,

elle me gêne car je dois la faire sur 60 lignes et sur 30 classeurs.......

c'est pour ça que je voulais privilégier un copier/coller formule par bloc... je n'avais que 30 manip à faire...

Bonjour @ tous,

Si j'ai bien compris,

  1. masquer les lignes de données
  2. sélectionner ton bloc
  3. suivre les étapes sur les images :
    select1 select2 select3

Puis faire un copier/collage spécial ==> formules

@ + +

Bonjour R@chid,

Merci de ta contribution!!!

ta solution doit fonctionner, malheureusement cacher 60 lignes de données (1 ligne sur 2) , faire ta manip, et ce sur 30 classeurs: ouille ouille ouille!.....


ce que je ne comprends pas, c'est pourquoi alors que je lui demande de faire un copier/coller formule, il copie également les valeurs de la sélection au lieu de ne pas les traiter et de ne s'occuper que des cellules contenant une formule....

Bonjour,

ZoL a écrit :

Bonjour R@chid,

Merci de ta contribution!!!

ta solution doit fonctionner, malheureusement cacher 60 lignes de données (1 ligne sur 2) , faire ta manip, et ce sur 30 classeurs: ouille ouille ouille!.....


ce que je ne comprends pas, c'est pourquoi alors que je lui demande de faire un copier/coller formule, il copie également les valeurs de la sélection au lieu de ne pas les traiter et de ne s'occuper que des cellules contenant une formule....

dans une autre colonne tu fais cette formule :

=MOD(LIGNE();2)

@ tirer vers le bas

Elle va renvoyer des 1 et 0 puis tu filtres sur la valeur qui te convient soit 1 ou 0

@ + +

oui mais ça va me désorganiser mes lignes pour le collage....non?

ce que je ne comprends pas, c'est pourquoi alors que je lui demande de faire un copier/coller formule, il copie également les valeurs de la sélection au lieu de ne pas les traiter et de ne s'occuper que des cellules contenant une formule....

En fait, il copie la valeur qui se trouve dans la barre de formule.

Si c’est une valeur, il copie la valeur.

Si c’est une formule, il copie la formule (contrairement à une copie standard qui copie la valeur).

Si tu effectues une copie ligne à ligne avec VBA, les 60 lignes ne devraient pas poser problème.

Reste à voir comment tu envisages de répéter l'action sur tes 30 classeurs.

A+

Bonjour,

ZoL a écrit :

oui mais ça va me désorganiser mes lignes pour le collage....non?

Ouiiiiiiiiiii, je viens de faire un petit test, c'est embêtant ça...

Les experts en VBA peuvent t'aider à automatiser la chose.

@ + +

@ R@chid merci de ton aide en tout cas! )

Frangy, merci pour l'explication du copier/coller formules... je comprends donc pourquoi ça ne marche pas....

heu... je sais que je dois abuser là... mais ça serait quoi la macro pour copier les formules une ligne sur deux dans D6:T61 du classeur "source" au classeur "destination" au même emplacement

sachant que je devrai recopier la macro dans 30 classeurs, donc il faudrait pas que le nom du classeur source soit "figé" le nom du classeur destination pouvait être figé quant à lui, me débrouillerai pour le renommer après....

hanlala dans quoi je vous embarque....

merci si une bonne âme ne trouve rien de mieux a faire que de m'aider!....

Voici un code pour réaliser la copie des lignes de la plage D6:T61 de la feuille 1 du classeur actif qui contiennent des formules et coller ces formules dans un classeur destinataire.

Le programme te demande de choisir le classeur destinataire, puis il effectue la copie ainsi que l’enregistrement du fichier avant fermeture.

L’opération peut s’effectuer autant de fois que nécessaire.

Par contre, il faut que la feuille qui reçoit la copie porte toujours le même nom.

Je l’ai nommée "Feuil1" dans le programme. A toi d’adapter ce nom.

ATTENTION ! Fais les premiers tests sur un classeur destinataire spécifique pour l’essai.

47test.xlsm (23.98 Ko)

A+

Frangy....

C'est parfait!!! 1001 merciS tu me sauves la vie!!!! je devrai pouvoir adapter cela sans trop de pb tellement c'est parfait!

tu me sauves mon week end!

je maintiens le fil ouvert juste au cas où.... mais je reviendrai le fermer dès que j'ai fini!

re....

j'ai honte mais je me suis planté dans ma demande.... ça ne marche pas car en fait ce ne sont pas des formule mais des liens vers d'autres feuilles.

j'ai droit a une deuxième tentative d'aide? en ouvrant un autre post en affinant ma demande qui sera plus simple?...

je suis sincèrement désolé!

mille mercis a vos contributions dominicales!...

S'il s'agit de liens hypertexte, tu dois pouvoir adapter facilement le code avec

For Ligne = 6 To 61
    'If Left(WsS.Range("D" & Ligne).Formula, 1) = "=" Then
    If WsS.Range("D" & Ligne).Hyperlinks.Count > 0 Then
        WsS.Range("D" & Ligne).Resize(, 17).Copy WsC.Range("D" & Ligne)
    End If
Next Ligne

A+

Merci Frangy de ta réponse, mais je crois que je me complique la vie en donnant des conditions à la copie....

ne serait-ce pas plus simple, de faire une petite macro disant pour un groupe de cellule contiguës sélectionnées, copier une ligne sur deux de la feuille active (y compris le format des cellules), et avoir une autre petite macro pour coller une ligne sur deux dans la feuille active? (sans enregistrement de classeur ni rien...)

je sais que j'abuse surement mais ....

bon début de journée....

ZoL

re...

j'ai préféré réouvire un autre post, ma demande étant différente... et pour éviter de vous monopoliser... ne n'est pas contre vous hein?

vous m'avez été d'un précieux secours...

Merci encore!

ZoL

Bonjour,

Pour faire une copie sur 2 sans condition, il suffit de coder

For Ligne = 6 To 61 Step 2
    WsS.Range("D" & Ligne).Resize(, 17).Copy WsC.Range("D" & Ligne)
Next Ligne

A+

merci, mais ca me renvoit une erreur 424

Sub Macro4()

For Ligne = 6 To 61 Step 2

WsS.Range("D" & Ligne).Resize(, 17).Copy WsC.Range("D" & Ligne)

Next Ligne

End Sub

Rechercher des sujets similaires à "copier formules valeurs cote"