Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro copier coller, ligne variable, conserver formule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Andreleca

XLDnaute Nouveau
Bonjour à vous tous

Avec votre aide j'ai réussi à bâtir un outil facilitant mon travail, mais j'ai encore un petit souci. Voir fichier joint. Je suis capable de
- copier deux cellules (E4 et F4) sur les colonnes E5 jusqu’au cellule vide colonne C
- de convertir mes cellules en format valeur (dans le but d'allèger le fichier) par la suite.
Par contre j'aimerais bien conserver les formules en E4 et F4, mais avec la formule ci dessous tout est convertie en valeur (incluant E4 et F4)

Merci de votre aide
 

Pièces jointes

Re : Macro copier coller, ligne variable, conserver formule

Bonsoir Andreleca,

Code:
Sub Copier_coller()
With Range("E6:F" & Range("C" & Rows.Count).End(xlUp).Row)
  If .Row > 5 Then
    [E4:F4].Copy .Cells
    .Value = .Value 'supprime les formules
  End If
End With
End Sub
A+
 
Re : Macro copier coller, ligne variable, conserver formule

Re,

Si la zone copiée est raccourcie après un 1er collage :

Code:
Sub Copier_coller()
Application.ScreenUpdating = False
Range("E6:F" & Rows.Count).Delete xlUp 'RAZ
With Range("E6:F" & Range("C" & Rows.Count).End(xlUp).Row)
  If .Row < 6 Then Exit Sub
  [E4:F4].Copy .Cells
  .Value = .Value 'supprime les formules
End With
End Sub
A+
 
Re : Macro copier coller, ligne variable, conserver formule

Bonjour Andreleca, le forum,

Si les formules sont immuables on peut se passer de E4:F4 et les entrer directement :

Code:
Sub Formules()
Application.ScreenUpdating = False
Range("E6:F" & Rows.Count).Delete xlUp 'RAZ
With Range("E6:F" & Range("C" & Rows.Count).End(xlUp).Row)
  If .Row < 6 Then Exit Sub
  .FormulaArray = Array("=RC[-2]*2", "=RC[-1]+1")
  .Value = .Value 'supprime les formules
End With
End Sub
J'utilise un Array par subtilité mais ce n'est pas indispensable...

A+
 
Re : Macro copier coller, ligne variable, conserver formule

Très bonne idée ... mais pas dans ce fichier car les formules risquent de changer! Par contre le concept sera utile dans une autre application.
Si je comprend bien les formules des cellules se situent ici;
[QUOTEFormulaArray = Array("=RC[-2]*2", "=RC[-1]+1")][/QUOTE]
Merci encore Job 75 😱
 
Re : Macro copier coller, ligne variable, conserver formule

Re,

Notez que si dans les formules on veut utiliser des références absolues pour les colonnes C et E il faut prendre des précautions.

En effet à partir d'Excel 2007 RC3 et RC5 sont des références de cellules et Excel utilisera le style "A1".

Pour qu'Excel prenne bien le style "R1C1" on utilisera R[0] à la place de R :

Code:
Sub Formules()
Application.ScreenUpdating = False
Range("E6:F" & Rows.Count).Delete xlUp 'RAZ
With Range("E6:F" & Range("C" & Rows.Count).End(xlUp).Row)
  If .Row < 6 Then Exit Sub
  .FormulaArray = Array("=R[0]C3*2", "=R[0]C5+1")
  .Value = .Value 'supprime les formules
End With
End Sub
Bonne soirée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
317
Réponses
10
Affichages
547
Réponses
2
Affichages
283
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…