Formule VBA pour compiler des onglets en valeur brute Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
V
Vazino
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 12 janvier 2018
Version d'Excel : 2016 FR

Message par Vazino » 12 janvier 2018, 14:05

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 :) :)
Avatar du membre
Patrice33740
Membre fidèle
Membre fidèle
Messages : 383
Appréciations reçues : 29
Inscrit le : 27 juillet 2014
Version d'Excel : FR, 2007, 2003, 2013, 2016

Message par Patrice33740 » 12 janvier 2018, 14:29

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
1 membre du forum aime ce message.
Cordialement
Patrice
Avatar du membre
Raja
Passionné d'Excel
Passionné d'Excel
Messages : 5'063
Appréciation reçue : 1
Inscrit le : 3 février 2008
Version d'Excel : 2010 à 2016 FR et 2010 EN

Message par Raja » 12 janvier 2018, 14:31

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
1 membre du forum aime ce message.
Cdlt,
Raja
V
Vazino
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 12 janvier 2018
Version d'Excel : 2016 FR

Message par Vazino » 12 janvier 2018, 19:19

Un grand merci Patrice33740 et Raja pour vos réponses super rapides et efficaces!!
Ca marche!
Encore merci à vous deux et bon WE! :)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message