Formule VBA pour compiler des onglets en valeur brute

Bonjour,

Je souhaite compiler différents onglets Excel ayant tous exactement la même structure dans un seul onglet.

J'ai récupéré cette petite formule VBA qui répond à mon besoin...enfin en partie...la formule me colle les cellule avec les formules alors que je souhaiterais les coller en valeur brute.

Voici le code VBA que j'ai actuellement (ci-dessous)

Comment pourrais-je le modifier pour coller les cellules en valeur? Je pense qu'il faudrait ajouter un "PasteSpecial Paste:=xlPasteValues" quelque part mais je ne sais pas où

Sub Compil()

Dim Shc As Worksheet, Shs1 As Worksheet, Shs2 As Worksheet, Shs3 As Worksheet

Set Shc = Sheets("feuille cible")

Set Shs1 = Sheets("onglet x")

Set Shs2 = Sheets("onglet y")

Set Shs3 = Sheets("onglet z")

Shs1.Range("A2:N" & Shs2.Range("A65535").End(xlUp).Row).Copy Shc.Range("A65535").End(xlUp)(2)

Shs2.Range("A2:N" & Shs2.Range("A65535").End(xlUp).Row).Copy Shc.Range("A65535").End(xlUp)(2)

Shs3.Range("A2:N" & Shs3.Range("A65535").End(xlUp).Row).Copy Shc.Range("A65535").End(xlUp)(2)

End Sub

Un grand merci par avance à quiconque pourra m'aider

Bonjour,

Essaies :

Option Explicit
Sub Compil()
  Compiler ("onglet x")
  Compiler ("onglet y")
  Compiler ("onglet z")
End Sub
Private Sub Compiler(nomSrc As String)
Dim src As Range
Dim dst As Range
  Set dst = Worksheets("feuille cible").Range("A" & Rows.Count).End(xlUp).Offset(1)
  Set src = Worksheets(nomSrc).Range("N2", Cells(Rows.Count, "A").End(xlUp))
  ' Si besoin : tout copier (pour formats, MFC, commentaires, validations)
  src.Copy Destination:=dst
  ' Copier les valeurs
  dst.Resize(src.Rows.Count, src.Columns.Count).Value = src.Value
End Sub

Bonjour,

Essayé comme ça :

Sub Compil()
    Dim Shc As Worksheet, Shs1 As Worksheet, Shs2 As Worksheet, Shs3 As Worksheet
    Set Shc = Sheets("feuille cible")
    Set Shs1 = Sheets("onglet x")
    Set Shs2 = Sheets("onglet y")
    Set Shs3 = Sheets("onglet z")
    Shs1.Range("A2:N" & Shs1.Range("A65535").End(xlUp).Row).Copy
    Shc.Range("A65535").End(xlUp)(2).PasteSpecial xlValues
    Shs2.Range("A2:N" & Shs2.Range("A65535").End(xlUp).Row).Copy
    Shc.Range("A65535").End(xlUp)(2).PasteSpecial xlValues
    Shs3.Range("A2:N" & Shs3.Range("A65535").End(xlUp).Row).Copy
    Shc.Range("A65535").End(xlUp)(2).PasteSpecial xlValues
End Sub

Un grand merci Patrice33740 et Raja pour vos réponses super rapides et efficaces!!

Ca marche!

Encore merci à vous deux et bon WE!

Rechercher des sujets similaires à "formule vba compiler onglets valeur brute"