Copie par macro, sans les formules

Bonsoir à tous,

Je recherche le moyen de copier certaines valeurs d'une 1ere feuille sur une seconde,

selon la macro ci-dessous, mais j'obtiens les valeurs pour valeurs des 1eres (et fonctions pour fonctions des 1eres);

or, je ne souhaite obtenir en copie que les valeurs obtenues des fonctions, sans copier les fonctions.

quelle syntaxe dois-je employer ou rajouter / modifier sur ce concept ?

je remercie par avance les âmes charitables qui comprendront mon charabia et corrigeront cette copie

Sub Transf()

'

' Transf Macro

'

'

Range("F11").Select

If MsgBox("VALIDATION CONFIRMEE ?", vbYesNo, "Confirmation") = vbYes Then

Range("A11:G11").Select

Selection.Copy

Sheets("Feuil2").Select

derlig = Range("A200").End(xlUp).Offset(1).Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Application.CutCopyMode = False

Sheets("Feuil1").Select

Range("A15:G15").Select

Selection.Copy

Sheets("Feuil2").Select

derlig = Range("H200").End(xlUp).Offset(1).Select

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Sheets("Feuil1").Select

[B11:E11,G11,B15:F15].ClearContents

Worksheets("Feuil1").Range("A11").Value = Worksheets("Feuil1").Range("A11").Value + 1

Range("B11").Select

Application.CutCopyMode = False

End If

End Sub

malgré les tutos, je n'ai pas trouvé de réponse

bonne soirée à tous et encore merci de votre secours

cordialement

axion

Bonsoir

D'après ce que j'ai compris, tu insères des cellules en fin de ta zone : Est-ce utile ?

Si ce n'est pas ce que tu voulais, fournis un fichier

Sub Transf()
  Application.ScreenUpdating = False
  If MsgBox("VALIDATION CONFIRMEE ?", vbYesNo, "Confirmation") = vbYes Then
    With Sheets("Feuil2")
      Range("A11:G11").Copy
      .Range("A200").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                SkipBlanks:=False, Transpose:=False
      Range("A15:G15").Copy
      .Range("H200").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                                SkipBlanks:=False, Transpose:=False
    End With
    [B11:E11,G11,B15:F15].ClearContents
    Range("A11").Value = Range("A11").Value + 1
    Range("B11").Select
  End If
End Sub

Bonsoir,

Un essai :

Sub transfert()

Dim ws1 As Worksheet, ws2 As Worksheet
Dim l1 As Range, l2 As Range
Dim lastr As Long, compteur As Long
Set ws1 = Worksheets("Feuil1")
Set ws2 = Worksheets("Feuil2")
Set l1 = ws1.Range("A11:G11")
Set l2 = ws1.Range("A15:G15")
lastr = ws2.Range("A65000").End(xlUp).Row
compteur = ws1.Range("A11").Value

If MsgBox("VALIDATION CONFIRMEE ?", vbYesNo, "Confirmation") = vbYes Then
With ws2
.Cells(lastr + 1, 1).Resize(1, 7) = l1.Value
.Cells(lastr + 1, 8).Resize(1, 7) = l2.Value
End With

With ws1
.Range("A11") = compteur + 1
.Range("B11:E11").ClearContents
.Range("G11").ClearContents
.Range("B15:F15").ClearContents
End With

End If

End Sub

Cordialement

edit : bonsoir Banzai, oups; j'avais pas vu que tu avais déjà répondu

Bonsoir, ketamacanna

Bonsoir, Banzai,

Merci infiniment de vos lumières

ça faisait 2 jours que je pataugeais en vain pour enlever formules et MFC diverses

testé et approuvé à 100%, après avoir re initialisé le dossier, suite aux séquelles des diverses tentatives

Pour répondre à Banzaï, le formulaire de départ est sur 2 lignes, comme tu l'as compris, mais pour des traitements ultérieurs,

tout doit être regroupé sur 1 seule en 2nde feuille, les lignes se succédant au rythme des validations.

d'ailleurs, il faut que je recherche une macro évènementielle pour ne pouvoir accéder à cette validation que lorsqu' une cellule précise est <>0 (cellule F11 en l'occurrence, qui contient une formule)

et si je ne trouve pas,... je reviendrai chercher votre patience !

encore merci et, s'il n'est pas trop tard, je vous souhaite tous mes meilleurs voeux pour 2012

cordialement

axion

Rechercher des sujets similaires à "copie macro formules"