Menu

Macro collage spécial

Messages postés
531
Date d'inscription
vendredi 16 février 2007
Statut
Membre
Dernière intervention
8 avril 2019
- - Dernière réponse : via55
Messages postés
10517
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 avril 2019
- 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

Afficher la suite 

Votre réponse

3 réponses

Messages postés
10517
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 avril 2019
1382
0
Merci
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
userbear
Messages postés
531
Date d'inscription
vendredi 16 février 2007
Statut
Membre
Dernière intervention
8 avril 2019
150 -
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.
Commenter la réponse de via55
Messages postés
10517
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 avril 2019
1382
0
Merci
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
userbear
Messages postés
531
Date d'inscription
vendredi 16 février 2007
Statut
Membre
Dernière intervention
8 avril 2019
150 -
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.
Commenter la réponse de via55
Messages postés
10517
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
20 avril 2019
1382
0
Merci
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

Commenter la réponse de via55