Vba coller en mode spécial valeurs

Résolu
AstraLife Messages postés 99 Statut Membre -  
AstraLife Messages postés 99 Statut Membre -
Bonjour,

J'ai un code qui me colle toutes mes lignes mais avec la mise en forme, formule...

Je souhaite le type spécial "Valeurs" :

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False


mais je n'arrive pas à l'incruster dans la ligne de code ci dessous :

With Sheets("Export")
 .Range("A2:Q" & .Range("A65536").End(xlUp).Row).Copy Sheets("Traitement").Range("A65536").End(xlUp).Offset(1, 0)
End With


1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    une facon de faire:

    Sub test()
        Dim Table As Range
        
        With Sheets("Export")
            Set Table = .Range("A2:Q" & .Range("A65536").End(xlUp).Row)     'mise en memoire cellules a copier
            With Sheets("Traitement")
                L = .Range("A65536").End(xlUp).Row + 1      'premier cellule vide colonne A
                .Range("A" & L).Resize(Table.Rows.Count, 17) = Table.Value      ' "copie" table memoire dans la feuille
            End With
        End With
    End Sub
    0
    1. AstraLife Messages postés 99 Statut Membre
       
      Bonjour,

      Merci

      Juste un petit problème, j'ai une erreur sur la ligne

      L = .Range("A65536").End(xlUp).Row + 1      'premier cellule vide colonne A


      Variable non définie

      Mon code en entier

      Option Explicit 'Oblige la déclaration des Variables
      
      Sub Sup_Lig()
      Dim dlig As Long, i As Long ' Declare la variable Dlig
      
      
      Application.ScreenUpdating = False 'Empeche le rafraichissement de l'écran
      dlig = Sheets("Export").Range("R" & Rows.Count).End(xlUp).Row ' Recherche la Dernière LIGne de la Colonne R
      
      For i = dlig To 2 Step -1 ' Boucle sur les lignes de la Dernière trouvée a la ligne n°2
          
          If Cells(i, 20) > 1 Then Rows(i).EntireRow.Delete 'si La cellule est supérieure à 1 alors on supprime la ligne
      
      Next i 'Prochaine Ligne
      
      Sheets("Traitement").Select
      
      Range("A2:T1000").Select
          Selection.ClearContents
      
      Dim Table As Range
      With Sheets("Export")
              Set Table = .Range("A2:Q" & .Range("A65536").End(xlUp).Row)     'mise en memoire cellules a copier
              With Sheets("Traitement")
                  L = .Range("A65536").End(xlUp).Row + 1      'premier cellule vide colonne A
                  .Range("A" & L).Resize(Table.Rows.Count, 17) = Table.Value      ' "copie" table memoire dans la feuille
              End With
          End With
      
      ActiveWorkbook.Save
      
      Application.ScreenUpdating = True 'Remet la rafraichissement de l'écran
      
      End Sub
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Variable non définie
      Ben definissez la!!!!!!!!!!!!!!!
      0
      1. AstraLife Messages postés 99 Statut Membre > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Ok, c'est fait, nickel, merci beaucoup.


        [/contents/446-fichier-sub Sub] Sup_Lig()
        Dim dlig As Long, i As Long ' Declare la variable Dlig
        
        
        Application.ScreenUpdating = False 'Empeche le rafraichissement de l'écran
        dlig = Sheets("Export").Range("R" & Rows.Count).End(xlUp).Row ' Recherche la Dernière LIGne de la Colonne R
        
        For i = dlig To 2 Step -1 ' Boucle sur les lignes de la Dernière trouvée a la ligne n°2
            
            If Cells(i, 20) > 1 Then Rows(i).EntireRow.Delete 'si La cellule est supérieure à 1 alors on supprime la ligne
        
        Next i 'Prochaine Ligne
        
        Sheets("Traitement").Select
        
        Range("A2:T1000").Select
            Selection.ClearContents
        
        Dim Table As Range, L As Long
        With Sheets("Export")
                Set Table = .Range("A2:Q" & .Range("A65536").End(xlUp).Row)     'mise en memoire cellules a copier
                With Sheets("Traitement")
                    L = .Range("A65536").End(xlUp).Row + 1      'premier cellule vide colonne A
                    .Range("A" & L).Resize(Table.Rows.Count, 17) = Table.Value      ' "copie" table memoire dans la feuille
                End With
            End With
        
        ActiveWorkbook.Save
        
        Application.ScreenUpdating = True 'Remet la rafraichissement de l'écran
        
        End Sub
        0