Excel: macro de copie valeurs sans formule
axion
-
axion -
axion -
Bonsoir,
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
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
A voir également:
- Excel: macro de copie valeurs sans formule
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
3 réponses
Bonjour,
Je ne te refais pas tout le code mais juste un exemple pour copier les valeurs d'une plage.
A mettre dans Feuil1 :
eric
Je ne te refais pas tout le code mais juste un exemple pour copier les valeurs d'une plage.
A mettre dans Feuil1 :
Dim lig As Long
lig = [Feuil2!A65536].End(xlUp).Row + 1
Worksheets("Feuil2").Cells(lig, 1).Resize(1, 7) = [A11:G11].Value
eric
Bonsoir à tous,
Je reprends le fil tardivement pour remercier encore tous les helpers car, grâce à eux, je pense avoir réalisé quelque modeste progrès.
En reconstituant par puzzle une macro du genre ci-dessous:
Sub Bouton16_Cliquer()
If Range("H13") = 0 Then
ActiveSheet.Shapes("Bouton 16").ControlFormat.Enabled = False
Else:
Dim ws1 As Worksheet, ws2 As Worksheet
Dim l1 As Range, l2 As Range, l3 As Range
Dim lastr As Long, compteur As Long
Set ws1 = Worksheets("accueil")
Set ws2 = Worksheets("pagedit")
Set l1 = ws1.Range("B13:H13") ` à copier (a)
Set l2 = ws1.Range("B18:J18") ` à copier (b)
Set l3 = ws1.Range("I27:L27") ` à copier (c )
lastr = ws2.Range("A1500").End(xlUp).Row
compteur = ws1.Range("H27").Value `n° de validation
If MsgBox("CONFIRMER" & Chr(10) & "la VALIDATION ?", vbYesNo, "Confirmation") = vbYes Then
With ws2 ` copies de (a) (b) et (c ) sur 1 ligne en page 2
ws2.Unprotect ("etasseur")
.Cells(lastr + 1, 1).Resize(1, 7) = l1.Value ` coller (a)
.Cells(lastr + 1, 8).Resize(1, 9) = l2.Value ` coller (b)
.Cells(lastr + 1, 17).Resize(1, 4) = l3.Value ` coller (c )
ws2.Protect Password:="etasseur"
End With
With ws1
.Range("H26") = 1 ` repère pour retour en annulation
.Range("H27") = compteur + 1 ` n° validation +1
.Range("C13:G13").ClearContents ` (a)
.Range("C18:H18").ClearContents ` (b)
End With
Range("C13").Select ` retour à la case départ
End If
End If
End Sub
Je suppose qu'elle doit être simplifiée....
et si cette macro peut servir à quelqu'un, il gagnera le temps que j'y ai passé
bonne continuation à tous
cordialement
axion
Je reprends le fil tardivement pour remercier encore tous les helpers car, grâce à eux, je pense avoir réalisé quelque modeste progrès.
En reconstituant par puzzle une macro du genre ci-dessous:
Sub Bouton16_Cliquer()
If Range("H13") = 0 Then
ActiveSheet.Shapes("Bouton 16").ControlFormat.Enabled = False
Else:
Dim ws1 As Worksheet, ws2 As Worksheet
Dim l1 As Range, l2 As Range, l3 As Range
Dim lastr As Long, compteur As Long
Set ws1 = Worksheets("accueil")
Set ws2 = Worksheets("pagedit")
Set l1 = ws1.Range("B13:H13") ` à copier (a)
Set l2 = ws1.Range("B18:J18") ` à copier (b)
Set l3 = ws1.Range("I27:L27") ` à copier (c )
lastr = ws2.Range("A1500").End(xlUp).Row
compteur = ws1.Range("H27").Value `n° de validation
If MsgBox("CONFIRMER" & Chr(10) & "la VALIDATION ?", vbYesNo, "Confirmation") = vbYes Then
With ws2 ` copies de (a) (b) et (c ) sur 1 ligne en page 2
ws2.Unprotect ("etasseur")
.Cells(lastr + 1, 1).Resize(1, 7) = l1.Value ` coller (a)
.Cells(lastr + 1, 8).Resize(1, 9) = l2.Value ` coller (b)
.Cells(lastr + 1, 17).Resize(1, 4) = l3.Value ` coller (c )
ws2.Protect Password:="etasseur"
End With
With ws1
.Range("H26") = 1 ` repère pour retour en annulation
.Range("H27") = compteur + 1 ` n° validation +1
.Range("C13:G13").ClearContents ` (a)
.Range("C18:H18").ClearContents ` (b)
End With
Range("C13").Select ` retour à la case départ
End If
End If
End Sub
Je suppose qu'elle doit être simplifiée....
et si cette macro peut servir à quelqu'un, il gagnera le temps que j'y ai passé
bonne continuation à tous
cordialement
axion
Merci de ta réponse rapide, mais d'abord, s'il n'est pas trop tard, je te présente tous mes Meilleurs Voeux pour 2012
je vais essayer de reprendre d'après ton avis
toutefois, j'ai 2 lignes séparées à coller "à la suite" sur la 2nde feuille, en ajout de ligne à chaque validation de type formulaire.
je vais jongler dès demain et te tiendrai au courant
encore merci
cordialement
axion
toutefois, j'ai 2 lignes séparées à coller "à la suite" sur la 2nde feuille
Il faut le faire en 2 fois comme tu as fait.
eric