Macro collage spécial

Fermé
userbear Messages postés 533 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 5 décembre 2023 - 5 avril 2019 à 14:15
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 8 avril 2019 à 15:38
Bonjour à tous les experts de la planète CCM.

J'ai un bête problème que je ne parviens pas à résoudre et je sollicite votre aide, qui sera, je le sais, excellente comme d'habitude.

J'ai donc un Classeur avec 2 feuilles;
Sur la première feuille est écrit du texte avec formule.

La seconde feuille doit pouvoir reprendre le texte mais sans formules.

En fait, il faut que je puisse obtenir l'équivalent du copier/collage spécial-->valeur en cliquant sur un bouton macro.

L'objectif est ensuite de pouvoir ensuite l'enregistrer en format CSV puisqu'il ne prend pas en compte les formules semble t-il.


Je précise qua je connais très bien Excel mais pas les macros donc à celle ou celui qui m'apporte une aide, merci de me considérer comme un enfant...

Une infinité de merci à vous tous.7



Configuration: Windows / Firefox 66.0

A voir également:

3 réponses

via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 734
5 avril 2019 à 14:26
Bonjour userbear

Utilise l'enregistreur de macro (Developpeur - Enregistrer une macro)
Tu lances l'enregistreur, tu fais la manip de copier ta plage et de la coller en collage spécial Valeurs et tu arrêtes l'enregisteur
ALt+F11 pour ouvrir l'éditeur VBA et tu cliques sur Module 1 dans l'arborescence pour voir le code de la macro

Tu peux ensuite lancer cette macro depuis ton classeur à partir de Developpeur - Macros - Exécuter ou bien tu crées un bouton sur la feuille (Developpeur - Inserer - Contrôles de formulaire - icône bouton) et tu associe la macro

Exemple de macro que j'ai obtenue avec l'enregistreur en copiant-collant la plage A2:A14
Sub Macro1()
'
' Macro1 Macro
'

    Sheets("Feuil1").Select
    Range("A2:A14").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

Cdlmnt
Via
0
userbear Messages postés 533 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 5 décembre 2023 122
8 avril 2019 à 14:38
Un immense merci à toi Via,
je ne parvenais pas à enregistrer cette macro.

Puisque tu as l'air d'être un champion, pourrais-je te sollliciter pour un autre coupe de main ?

Alors voilà, je cherche une macro qui me permettrait de sélectionner les cellules non-vides d'un tableau.

Sur une feuille Excel, je peux avoir des données de A1 jusqu''a F500 et je voudrais pouvoir les sélectionner automatiquement sans passer par une sélection.
Je précise que sur certaine cellules, il y 'a des formules t des mises en forme conditionnelle.

Je n'ai besoin que de les copier, pas de les coller puisque j'ai déjà la macro grâce à toi.

Merci encore.
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 734
8 avril 2019 à 15:12
Re

Je ne comprends pas bien ce que tu veux faire
Tu as des cellules éparses remplies dans la plage A1:F500
Tu voudrais ne copier que ces cellules ?
Mais dans ce cas où les copier ? Les unes en dessous des autres ?

Si ton tableau comporte des lignes vides tu peux déjà le filtrer en décochant Vide

Un exemple de ton fichier serait le bienveni
Exemple à poster sur mon-partage.fr, faire créer un lien, le copier et revenir le coller ici

Cdlmnt
Via
0
userbear Messages postés 533 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 5 décembre 2023 122
8 avril 2019 à 15:22
Merci Via de te pencher sur mon probème.
Dans ma feuilles, il n'y aucune interruption dans les données (donc pas de ligne blanche).
Je voudrais faire en sorte que ma macro puisse effectuer une sélection et copier jusqu'à la première ligne vide finalement.
un coup mon tableau peut avoir 15 lignes, un coup 100.

quelque soit le nombre de lignes, je souhaiterai que la macro sélectionne et copier les cellules.
Merci infiniment.
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 734
Modifié le 8 avril 2019 à 16:04
Donc si je comprend bien il faut trouver la dernière remplie dans l colonnes A à F toutes les colonnes sont remplies de A à F, il suffit donc déterminer la dernière ligne remplie en A pour connaître la plage A1:Fx à copier ?
Dans ce cas la macro deviendrait :
Sub recopie()


    Sheets("Feuil1").Select
    ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row 'dernière ligne remplie col A
    MsgBox ligne

    Range("A1:F" & ligne).Select
    Selection.Copy

   Sheets("Feuil2").Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

0