Résolution Copier/Coller avec formules

Bonjour,

J'aimerais copier le contenu d'une colonne dans une autre, sachant que :

1. La cellule de la première colonne affiche une valeur qui est le résultat d'une formule. J'aimerais qu'apparaisse seulement dans la deuxième colonne le résultat brut de la formule.

2. J'utilise le code suivant pour faire mon copier-coller. Il permet de copier les cellules qui ne sont pas vides de la première colonne (ici, la numéro 339, MA) dans la colonne MB, en les mettant à la suite. Il n'y a donc pas de cases vides dans la colonne MB.

Sub CopierColler2()

Dim ws1 As Worksheet
Set ws1 = Sheets("Choix_équipements")

Dim desti
Dim ligne As Integer
Dim colonne As Integer

colonne = 339
last = ws1.[MA65000].End(xlUp).Row

ws1.Range("MB17:MB65000").ClearContents

For ligne = 17 To last

  If ws1.Cells(ligne, colonne) <> "" Then
    Set desti = Sheets("Choix_équipements").Range("MB65000").End(xlUp).Offset(1)
    ws1.Cells(ligne, colonne).Copy Destination:=desti
  End If

Next

End Sub

Il faut modifier quelque chose sur la dernière ligne de la boucle If je suppose, mais je n'ai pas réussi à gérer le desti.

Pouvez-vous m'aider ?

Merci à tous,

Mim125

Bonjour,

Sub CopierColler2()
Dim Ws1 As Worksheet
Dim Ligne As Long, Last As Long
Dim Colonne As Integer
    Set Ws1 = Sheets("Choix_équipements")
    Colonne = 339
    Last = Ws1.[MA65000].End(xlUp).Row
    Ws1.Range("MB17:MB65000").ClearContents
    For Ligne = 17 To Last
      If Ws1.Cells(Ligne, Colonne) <> "" Then
        Ws1.Range("MB65000").End(xlUp).Offset(1) = Ws1.Cells(Ligne, Colonne).Value
      End If
    Next
End Sub

A+

Bonjour,

Essaie plutôt ceci :

Sub CopierColler2()
    Dim ws1 As Worksheet, ligne%, colonne%, last%, ldest%, desti()
    Set ws1 = Sheets("Choix_équipements")
    colonne = 339
    last = ws1.Range("MA" & Rows.Count).End(xlUp).Row
    ws1.Range("MB17:MB" & Rows.Count).ClearContents
    ReDim desti(1 To last)
    For ligne = 17 To last
        If ws1.Cells(ligne, colonne) <> "" Then
            ldest = ldest + 1
            desti(ldest) = ws1.Cells(ligne, colonne)
        End If
    Next ligne
    ReDim Preserve desti(ldest)
    ws1.Range("MB17").Resize(ldest - 1).Value = WorksheetFunction.Transpose(desti)
End Sub

NB- Ce n'est plus du copier-coller, malgré le nom de la procédure !

Cordialement.

Merci !!

La solution de frangy marche parfaitement !

J'ai une erreur sur la ligne suivante MFerrand :

ldest = ldest + 1

Merci à tous les deux de vous être penchés sur mon problème

Mim 125

Et quelle erreur donc ?

Il s'agit d'une simple incrémentation d'une variable Integer déclarée... !

Rechercher des sujets similaires à "tion copier coller formules"