Excel: macro de copie valeurs sans formule

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

3 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    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
    1
    1. axion
       
      Bonsoir Eric,

      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
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Tous mes voeux pour cette nouvelle année également.

      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
      0
  2. axion
     
    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
    0
  3. laplanche80 Messages postés 110 Statut Membre 3
     
    Je ne l'est pas étudié profondément ton code, mais tu rajouter .value en instruction supplémentaire.
    C'est plus embêtant mais moi j'aurais fait dans ce genre :
    SelectionCelluleColler.Value = SelectionCelluleCopier.Value

    En espérant que sa va t'aider
    -2
    1. axion
       
      Bonsoir,

      Merci aussi de la réponse
      et tous mes Meilleurs Voeux, également
      je donnerai la même réponse demain

      cordialement
      axion
      0
    2. laplanche80 Messages postés 110 Statut Membre 3
       
      de rien, et puis tiens nous au courant.
      Meilleurs voeux pareillement
      0