Copier feuille Excel entière sans liaison

Bonjour,

je travaille encore mon fichier clients.

J'ai donc une liste clients en premier onglet dans laquelle sont répertoriées toutes les coordonnées des clients.

J'ai également un onglet de codes prix (que j'ai enlevé, d’où les #REF partout )

Les onglets DEVIS et FACTURE sont pré complétés par les deux onglets liste clients et codes prix.

Nous complèterons les devis et facture à partir de ce classeur.

Là est mon problème : nous enregistrerons chaque devis ou facture indépendamment de ce classeur dans un dossier ( 142/2016 Dupont.xls par exemple ). Il faut qu'on puisse modifier le devis ou la facture après (donc copie en PDF ne convient pas). Je cherche à effectuer cette copie SANS LES LIENS avec les autres onglets, juste avec les valeurs. (Si y'a plantage de la base de données clients, cela ne plantera pas les factures et devis.) Le copier / coller les valeurs ne fonctionne pas. Il faut que ce soit SIMPLE.

J'ai bien peur de devoir passer par une macro ce coup-ci... Même si je préfèrerais éviter... Des idées svp?

bonjour

Faisable avec une macro simple qui préserve les colonnes calculées (qt x pu notamment )

ta recherche de désignation et de prix doit pouvoir se faire plus simplement à partir du code article et avec la fonction decaler qui est moins exigeante que Recherche ( je te joindrai un onglet exemple)

Je regarde cela cet après midi

Cordialement

FINDRH

Bonjour,

Peut être, sans macro: - copier les données de l'onglet voulu.

- Collage spécial "Valeurs et formats des nombres" dans un autre onglet / fichier.

Cdlt.

Ioxxy a écrit :

Bonjour,

Peut être, sans macro: - copier les données de l'onglet voulu.

- Collage spécial "Valeurs et formats des nombres" dans un autre onglet / fichier.

Cdlt.

Bonjour et merci pour la réponse

Malheureusement, cela ne fonctionne pas comme j'ai besoin car il ne reprend pas la mise en forme de la feuille de base.

Apriori, avec une macro et un bouton ca ira.

Merci quand même !!

Bonsoir

ci joint une proposition avec un bouton qui crée une copie de l'onglet dans un nouveau classeur et fige les cellules alimentées par les formules liées aux autres onglets.

J'ai utilisé Decaler pour alimenter les cellules issues de la liste Client et d'une liste produit que j'ai créée

A tester .... avant d’adapter éventuellement à tes besoins

Cordialement

FINDRH

FINDRH a écrit :

Bonsoir

ci joint une proposition avec un bouton qui crée une copie de l'onglet dans un nouveau classeur et fige les cellules alimentées par les formules liées aux autres onglets.

J'ai utilisé Decaler pour alimenter les cellules issues de la liste Client et d'une liste produit que j'ai créée

A tester .... avant d’adapter éventuellement à tes besoins

Cordialement

FINDRH

Bonjour et merci beaucoup pour tout ton travail.

Je viens d'adapter sur mon fichier le bouton VIDER mais par contre, je n'y arrive pas pour ce qui m'intéresse le plus... Sans vouloir te vexer, je ne voudrais QUE la partie pour copier l'onglet dans un autre classeur. Et quels morceaux sont à adapter pour que ca fonctionne sur mon fichier. Je n'arrive pas à les identifier.. Tout le reste, j'étudierai après... Pour l'instant, même si ce n'est pas le moyen le plus simple, ca marche...

Merci encore

Bonjour

sans voir un minimum de la structure de ton fichier réel je ne peux pas te répondre...

il doit y avoir un pb d'étiquettes de colonne( nom des colonnes) pour les formules de récupération d'info, de nommage des zones.

Peux tu anonymiser ce fichier final( 5 lignes clients, 5 lignes produits, pas de prix ) avec la maquette définitive du devis/facture, donc le classeur avec les vrais noms des onglets, cela me permettra d'apporter les correctifs nécessaires.

Combien de clients à ce jour, combien de produits ?

Tu peux me l'envoyer en message privé, cela en limitera la diffusion.

Cordialement

FINDRH

FINDRH

Bonjour,

Voilà la structure d'une procédure à utiliser pour faire ce que tu souhaites :

Sub ExportDevisFacture()
    Dim wb As Workbook, nfeuil$, nclass$, chemin$, nm As Name
    chemin = "CheminDossierClassement\"
    nfeuil = "NomDevisFactureExporté"
    nclass = "NomClasseurCréé.xlsx"
    'Créer copie dans le classeur
    ActiveSheet.Copy before:=Worksheets(1)
    ActiveSheet.Name = nfeuil
    With Worksheets(nfeuil)
        .UsedRange.Copy
        .Range("A1").PasteSpecial xlPasteValues
    'Déplacement copie dans nouveau classeur
        .Move
    End With
    Set wb = ActiveWorkbook
    'Suppression des noms exportés dans le nouveau classeur
    For Each nm In wb.Names
        nm.Delete
    Next nm
    'Enregistrement
    wb.SaveAs chemin & nclass
End Sub

Cela consiste à réaliser d'abord une copie de la feuille dans le classeur (on la place en première position, parce que c'est le plus rapide à écrire...). On la renomme.

Ensuite, on élimine les formules par une copie du contenu avec collage en valeurs au même emplacement (parce qu'il n'y a pas de méthode plus simple ni plus rapide...)

Ceci fait, on déplace la copie dans un nouveau classeur.

A ce stade, la feuille n'est plus dépendante de l'ancien classeur, mais on a exporté avec elle les noms dans le nouveau classeur, il convient donc de les supprimer avant d'enregistrer le classeur.

NB-Les données de type String à initialiser (noms de feuille et de classeur, chemin) peuvent l'être de façon pérenne en utilisant le contenu de cellules dont l'adresse est connue.

On peut mettre un bouton sur les feuille concernée pour réaliser cette opération. Dans ce cas, prévoir que le bouton ne soit pas imprimable, et dans la macro ajouter la suppression du bouton après copie.

Cordialement.

Rechercher des sujets similaires à "copier feuille entiere liaison"