Perte formules dans copie ligne avec macro

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
F
Fat
Membre fidèle
Membre fidèle
Messages : 176
Appréciations reçues : 3
Inscrit le : 25 septembre 2015
Version d'Excel : 2016

Message par Fat » 9 novembre 2017, 12:19

Bonjour le Forum,

J'ai un souci avec la macro ci dessous :

Sub recop()
'dernière ligne remplie en colonne E
ligneC = Columns(5).Find("*", , , , xlByColumns, xlPrevious).Row
'première ligne vide en colonne I
Dim Ligne As Long
Ligne = Columns(9).Find("*", , , , xlByColumns, xlPrevious).Row + 1
'copier-coller
Range("A" & ligneC & ":Z" & ligneC).Select
Selection.Copy
Range("A" & Ligne).Select
ActiveSheet.Paste
'Effacements
Range("F" & Ligne).Select
ActiveCell.FormulaR1C1 = ""
Range("P" & Ligne).Select
ActiveCell.FormulaR1C1 = ""
Range("U" & Ligne).Select
ActiveCell.FormulaR1C1 = ""
Range("C" & Ligne).Select
ActiveCell.FormulaR1C1 = ""
End Sub

Cette macro me sert à recopier la dernière ligne remplie en colonne E pour la mettre dans la première ligne vide en colonne I.
La copie se fait correctement, avec les effacements demandés, mais les formules disparaissent avec maintien seulement des valeurs qui n'ont aucun intérêt toutes seules.
Comment faire pour que les formules contenues dans les colonnes E, I, N, Q, R, S, T et V soient maintenues ?
Nota : Cette macro est dans un module de façon à pouvoir servir 2 feuilles, et elle est activée par Ctrl+w

Merci d'avance pour votre précieuse collaboration
Cordialement
Fat
Avatar du membre
VH_AE
Membre dévoué
Membre dévoué
Messages : 592
Appréciation reçue : 1
Inscrit le : 28 février 2017
Version d'Excel : 2010

Message par VH_AE » 9 novembre 2017, 12:24

Bonjour,

Premièrement il faut occulter les SELECT ! Bohhhhbooohboooh (y'a 2 mois je faisait pareil :lol: :lol: )

Au lieu de :
Range("F" & Ligne).Select
ActiveCell.FormulaR1C1 = ""
On met :
Range("F" & Ligne).FormulaR1C1 = ""
Ensuite, je t'invite à utiliser l'enregistreur de macro qui répondra à ta question. Difficile à la simple vu de ta macro.

Cdlt,
J'apprendrai à pêcher à celui qui a envie d'apprendre, et qui apporte sa canne à pêche.
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 9'451
Appréciations reçues : 428
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 9 novembre 2017, 12:34

bonjour,

bien que je n'aie pas de problème avec ton code, je te propose cette simplification
Sub recop()
'dernière ligne remplie en colonne E
    ligneC = Columns(5).Find("*", , , , xlByColumns, xlPrevious).Row
    'première ligne vide en colonne I
    Dim Ligne As Long
    Ligne = Columns(9).Find("*", , , , xlByColumns, xlPrevious).Row + 1
    'copier-coller
    Range("A" & Ligne & ":Z" & Ligne).Formula = Range("A" & ligneC & ":Z" & ligneC).Formula
    'Effacements
    Range("F" & Ligne) = ""
    Range("P" & Ligne) = ""
    Range("U" & Ligne) = ""
    Range("C" & Ligne) = ""
End Sub
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message