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