Importation d'une plage d'un fichier xls sélectionner fermé

Bonjour tout le monde,
pour commencer, je suis désolé pour les mots que je vais employer, je ne suis pas un pro de Excel, juste je me débrouille avec tout ce que je peux trouver sur le net.

Je suis entrains de me créer un dossier complet qui rassemble,

-la création de devis
-la création de Facture
-une liste de facture et autre

avec pleins de boutons, automatiser, vider un devis ou une facture, faire un nouveau devis ou une nouvelle facture, et d'autres jusqu'à présent, j'ai réussi à tous faire sauf un bouton, le bouton qui permet d'importer un devis déjà enregistré en XLS je m'explique,

quand j'effectue un devis, je l'enregistre en PDF et en Excel, ensuite une fois que l'on m'à validé un devis et que j'ai réalisé l'intervention (cela peut être 1 mois après), j'aimerais ouvrir le Devis Excel concerner, dans mon onglet facturation (il n'y a presque aucune différence entre l'onglet devis et l'onglet facture mise à part les 12 premières lignes et les 14 dernières) c'est pour cela que je voudrais importer qu'une partie de mes cellules devis.

Pour résumer le tous :

- Sélectionner un fichier XLS qui se trouve dans un dossier prédéfini

- Copier la plage ("C13: H56") (feuille 1)

- Coller La plage au même endroit, mais dans le fichier ou se trouve le bouton importé

Voici un code vba que j'ai fait.

Sub Importer_devis()

'déclaration des variables
Dim listefichier As Variant
Dim monclasseur As Workbook

'on efface les anciennes données
    Sheets("Facture").Range("C23:C35").Value = ""
    Sheets("Facture").Range("C40:C56").Value = ""
    Sheets("Facture").Range("F40:F56").Value = ""
    Sheets("Facture").Range("G40:G56").Value = ""
    Sheets("Facture").Range("E13").Value = ""

listefichier = Application.GetOpenFilename(Title:="Sélectionez Vorte Classeur", _
              filefilter:="Fichiers Excel(*xls*),*xls*", buttontext:="cliquez")

If listefichier <> False Then

Set monclasseur = Application.Workbooks.Open(listefichier)

monclasseur.Sheets(1).Range("C13:H56").Copy

ThisWorkbook.ActiveSheet.Range("C13:H56").Paste

    Application.DisplayAlerts = False

    End If

End Sub

Il m'indique une erreur à ce niveau ,

ThisWorkbook.ActiveSheet.Range("C13:H56").Paste

Merci d'avance pour votre aide en espérant avoir été le plus précis possible .
Bonne soirée à tous

Bonjour,

La méthode "Paste" n'existe pas pour la classe Range. Il faut utiliser "PasteSpecial"

ThisWorkbook.ActiveSheet.Range("C13:H56").PasteSpecial

Bonjour,

Sub Importer_devis()

'déclaration des variables
Dim ListeFichier As Variant
Dim MonClasseur As Workbook
Dim CelluleDestination As Range

    'on efface les anciennes données
    With Sheets("Facture")
         .Range("C23:C35").Value = ""
         .Range("C40:C56").Value = ""
         .Range("F40:F56").Value = ""
         .Range("G40:G56").Value = ""
         .Range("E13").Value = ""
         Set CelluleDestination = .Range("C13")
    End With

    ListeFichier = Application.GetOpenFilename(Title:="Sélectionez Votre Classeur", _
              filefilter:="Fichiers Excel(*xls*),*xls*", buttontext:="cliquez")

    If ListeFichier <> False Then

       Set MonClasseur = Application.Workbooks.Open(ListeFichier)
       MonClasseur.Sheets(1).Range("C13:H56").Copy Destination:=CelluleDestination

    End If

    Set MonClasseur = Nothing
    Set CelluleDestination = Nothing

End Sub

Bonjour, ce fut clair et rapide, merci à vous deux

bonne journée à tous

Rechercher des sujets similaires à "importation plage fichier xls selectionner ferme"