Perte formules dans copie ligne avec macro
Fat17
Messages postés
87
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Perte formules dans copie ligne avec macro
- Copie cachée - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Partager photos en ligne - Guide
- Formules - Télécharger - Études & Formations
- Copie écran samsung - Guide
1 réponse
Bonjour,
1) J'ai un peu de mal à comprendre l'utilisation de ce code : la plage cible et la plage source se situent dans les mêmes colonnes de la même feuille !
2) Il faut absolument éviter d'employer .Select et ActiveCell
3) Je l'aurais écrit comme ça :
Cordialement
Patrice
1) J'ai un peu de mal à comprendre l'utilisation de ce code : la plage cible et la plage source se situent dans les mêmes colonnes de la même feuille !
2) Il faut absolument éviter d'employer .Select et ActiveCell
3) Je l'aurais écrit comme ça :
Option Explicit Public Sub recop() Dim source As Range Dim cible As Range With ActiveSheet 'Dernière cellule remplie en colonne E Set source = .Columns("E").Find("*", , , , xlByColumns, xlPrevious) 'Première cellule vide en colonne I Set cible = .Columns("I").Find("*", , , , xlByColumns, xlPrevious).Offset(1) End With 'Dernière ligne de A à Z remplie en colonne E Set source = source.EntireRow.Resize(1, 26) 'Première ligne de A à Z vide en colonne I Set cible = cible.EntireRow.Resize(1, source.Columns.Count) 'Copier-coller source.Copy Destination:=cible 'Effacements cible.Cells(1, "F").ClearContents cible.Cells(1, "P").ClearContents cible.Cells(1, "U").ClearContents cible.Cells(1, "C").ClearContents End Sub
Cordialement
Patrice