XL 2016 coller un texte dans la barre de formule

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Me voici avec un nouveau souci que je ne parviens par à résoudre.
Rien trouvé sur le net et mes tentatives ne donnent rien..

Je me permets, une fois de plus de vous le soumettre, dans l'espoir d'une solution :

Nous copions des informations à chaque instant qui viennent du net.
Des liens et des textes d'annonces de biens à vendre.

actuellement, je copie les textes d'annonces dans une cellule et, par exemple,
Un texte copié en cellule F5, se "propage" de F5 à F28 voire plus encore.

Je ramène tout ça dans une seule cellule par concaténer ou par &&&.
Mais voilà, mon fichier (+ de 50.000 lignes) est très lourd et depuis longtemps je me demandais pourquoi ?
(Alors que dans ma feuille, il n'y a aucune formule (elles sont dans mes codes) et donc que des valeurs.)

En testant dans tous les sens, je me suis aperçu que cette lourdeur provient de la copie des textes des annonces.

En effet, un classeurs avec seulement 5500 lignes à un poids de 3mégas.
Le même fichier en copiant directement les textes dans la barre de formule à un poids de - d'un méga.
D'où ma demande :)
Mon besoin est copier le texte directement dans la barre de formule,

Je n'arrive pas à faire un code qui exécute l'action de "coller"
dans la barre de formule pour la cellule choisie
(dans l'exemple B3)

le cheminement serait celui-ci :
- sur le site où est le texte à copier, sélection et copy
- double clic dans la cellule réceptrice et le code copie dans la barre de formule

Je joins un fichier test.
Avec mes remerciements,
Je vous souhaite à toutes et à tous un super WE :)
amicalement,
arthour973,
 

Pièces jointes

  • Coller_ds_barre_formule.xlsm
    11 KB · Affichages: 23
Dernière édition:

David Aubert

XLDnaute Barbatruc
Administrateur
Modérateur
Bonjour Arthour, bonjour à tous,
Merci de bien vérifier que tu es en phase avec ce point de la charte :
1028181

Si ce n'est pas le cas cette demande ne peut pas être publiée sur le site et je devrai la supprimer.
Merci pour ta compréhension et bon WE.
David
 

job75

XLDnaute Barbatruc
Bonjour Lionel, hello David,

Tu ne prends pas le problème par le bon bout.

Car pour coller dans la barre de formule il faut être en mode "Edition" et alors aucune macro ne peut s'exécuter.

Mais ton problème se règle facilement par Collage spécial-Valeurs en exécutant cette macro :
VB:
Sub CollageSpecialValeurs()
Dim ac As Range
Set ac = ActiveCell
Application.ScreenUpdating = False
On Error Resume Next 'si rien n'a été copié
With Workbooks.Add.Sheets(1) 'nouveau document
    .Paste
    .UsedRange.Copy
    ac.PasteSpecial xlPasteValues 'collage spécial-valeurs
    .Parent.Close False 'fermeture du nouveau document
End With
End Sub
A+
 

youky(BJ)

XLDnaute Barbatruc
Je profite de l'occasion pour donner le bonjour à mon voisin David.
Avec XLD nous avons l'occasion de grosses prises de tête mais on aime ça.
Chaque demande est un défis plus ou moins évident.
Pour celle-ci c'est que du texte alors . . . .
J'ai ajouté 2 onglets et une macro sur double _click dans ce fichier
Bruno
 

Pièces jointes

  • Coller_ds_barre_formule (1).xlsm
    20.5 KB · Affichages: 20

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re- Gérard,

Cela me semble impossible car j'ai relevé en cherchant :
Comment passer au mode d'édition dans Excel

mode d'édition " dans un tableur Excel programme de Microsoft se réfère à l'état dans lequel une cellule est activée.
Vous devez initialiser le mode d'édition pour éditer le contenu de la cellule sélectionnée .
Excel a quelques moyens pour passer en mode édition après avoir choisi une cellule à modifier. Instructions
1 -Cliquez sur l' onglet du ruban "Fichier" . Cliquez sur " Ouvrir" pour afficher la liste des fichiers Excel.
Double- cliquez sur le fichier que vous souhaitez modifier pour le charger dans le logiciel.
2 - Cliquez sur la cellule que vous voulez modifier. Utilisez la souris pour cliquer sur la barre de formule en haut de la fenêtre. La cellule active , et il passe en mode édition.
Vous pouvez aussi double-cliquer sur la cellule pour activer le mode d'édition , ou vous pouvez appuyer sur la touche "F2" .
3 - Appuyez sur " Entrée" après avoir tapé dans vos modifications . En appuyant sur "Entrée" enregistre les modifications cellulaires
affiche les résultats d'une formule , si vous avez créé un calcul.

Quand nous travaillons, des centaines de fois par jours, nous ajoutons des annonces dans le fichier.
Je crois comprendre, que pour être en mode édition, il faut sortir du fichier pour y revenir.
Mais répété des centaines de fois/jours, nous perdrions trop de temps.

J'essais de faire des recherches pour voir si un code vba permet d'être en mode édition pour faire le "coller"
dans la barre de formule et de revenir au mode "normal" automatiquement et sans perdre de temps :)
Lionel,
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Oui Gérard et c'est ce que je fais depuis le début.
Mais le souci est que mon fichier et bcp trop lourd à cause de cette façon de coller :

"actuellement, je copie les textes d'annonces dans une cellule et, par exemple,
Un texte copié en cellule F5, se "propage" de F5 à F28 voire plus encore.
Je ramène tout ça dans une seule cellule par concaténer ou par &&&. "

"Mais voilà, mon fichier (+ de 50.000 lignes) est très lourd et depuis longtemps je me demandais pourquoi ?
(Alors que dans ma feuille, il n'y a aucune formule (elles sont dans mes codes) et donc que des valeurs.)

En testant dans tous les sens, je me suis aperçu que cette lourdeur provient de la copie des textes des annonces.
En effet, un classeurs avec seulement 5500 lignes à un poids de 3mégas.
Le même fichier en copiant directement les textes dans la barre de formule à un poids de - d'un méga.
D'où ma demande :)
Mon besoin est copier le texte directement dans la barre de formule,

Mais la méthode de Youky (Bruno) semble fonctionner même si elle modifie un peu notre façon de travailler.

Je vais voir ...

Encore merci Gérard :)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Je profite de l'occasion pour donner le bonjour à mon voisin David.
Avec XLD nous avons l'occasion de grosses prises de tête mais on aime ça.
Chaque demande est un défis plus ou moins évident.
Pour celle-ci c'est que du texte alors . . . .
J'ai ajouté 2 onglets et une macro sur double _click dans ce fichier
Bruno

Re-Bonjour Bruno,

Votre code fonctionne. Je vais voir comment intégrer cela dans nos fichiers de travail.
Un grand merci à vous :)
amicalement,
lionel,
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Je reviens sur le fil car j'ai un nouveau souci.
Bien évidemment, le code de youky(BJ) fonctionne super bien (un grand merci :)).

Mais j'ai un autre traitement à faire :
Dans mon fichier de travail, j'ai environ 50.000 annonces (1 ligne par annonce) à re-traiter.

Je copie tout ça en valeur dans la feuille LaCopie en colonne B et j'ai fait une boucle For dans laquelle j'ai intégré le code de Youky
La copie en feuille "RECAP" se fait bien mais ….

le code copie le texte de la ligne précédemment copiée en y ajoutant l'annonce qu'il copie au moment de son exécution.
voir traitement fait en feuille "RECAP".

Je n'arrive pas à trouver comment modifier pour obtenir la bonne copie des annonces les unes en dessous des autres.
Pourriez-vous m'aider encore une fois? LOL
je joins un fichier anonymisé test pour 100 lignes ainsi que le fichier d'origine de Youky.

Avec mes remerciements,
Je vous souhaite à toutes et à tous une agréable journée,
Amicalement,
arthour973,
 

Pièces jointes

  • Coller_ds_barre_formule_youky_test10.xlsm
    22.8 KB · Affichages: 5
  • Coller_ds_barre_formule_Youky.xlsm
    18.4 KB · Affichages: 4
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Bonjour Arthour,
Je suis pas sur d'avoir compris ta demande.
Voici un code
Bruno
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'c'est pour col B
'1 double-click en col B copie le target à la suite en RECAP et efface la ligne de Lacopie
cancel=true
If Target.Value = "" Then Exit Sub
lig = Feuil4.[A65000].End(3).Row + 1
Feuil4.Cells(lig, 1) = Target.Value
Rows(Target.Row).Delete
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 214
Membres
103 158
dernier inscrit
laufin