Pouvez-vous modifier le contenu d'une cellule Excel sans avoir à double-cliquer dessus?

28

J'ai une liste d'environ 10 000 noms / adresses que je dois nettoyer manuellement dans Excel (amusant!). Comme vous pouvez l'imaginer, avoir à double-cliquer pour entrer dans presque toutes les cellules pour le modifier est un glisser. Et c'est frustrant que si vous êtes même légèrement près du haut / bas de la cellule, vous vous retrouvez en haut / bas de la feuille de calcul!

Existe-t-il un moyen de dire à Excel de rester en `` mode édition '', de sorte que lorsque je clique sur une cellule (ou mieux encore, faites défiler vers le bas), cela me permet automatiquement de modifier le contenu? Je ne peux pas simplement commencer à taper, car cela écrase toute la cellule, alors que souvent, j'ai juste besoin d'éditer 1 ou 2 caractères. Merci.

David Gard
la source
1
C'est une sale solution de contournement, mais qu'en est-il de la convertir en CSV, de la fractionner avec des virgules et de la modifier avec le Bloc-notes ou tout autre éditeur de texte que vous aimez?
gronostaj
9
Êtes-vous sûr qu'aucun script ou fonction ne peut effectuer ce "nettoyage" pour vous? Face à une situation similaire, j'ai pris toutes les données d'Excel et je les ai exécutées avec succès à travers un petit script regex.
Moïse
19
Regardez vraiment ce que dit Moïse. Si vous faites quelque chose 10 000 fois manuellement, vous vous trompez.
Tanner Faulkner
@Moses - Malheureusement non. Ces entrées proviennent d'une base de données, et c'est principalement le champ «Nom de l'adresse» qui est masqué, les données étant très incohérentes. Certains disent des choses comme «Smith John Mr & Smith Joan Mrs», qui devrait être «Mr & Mrs J Smith», tandis que d'autres sont vides, etc. Ceci, au fond, est le début d'un très grand projet.
David Gard
1
@datatoo - Les noms doivent l'être mais d'une manière lisible, afin qu'ils puissent être utilisés sur les adresses. En raison de la fusion de plusieurs bases de données en une seule au fil des ans (et des gens paresseux), les données sont incohérentes au sein de la cellule. Je n'ai pas de cellule de référence pour passer, et une fois cette partie du projet terminée, je diviserai les données en Salutation, Initiales, Nom, etc. C'est à ce stade que je peux commencer à utiliser l'automatisation.
David Gard

Réponses:

20

Vous pouvez le faire avec la macro suivante. Votre Excel se comportera comme si vous frappiez à F2chaque fois que vous modifiez des sélections sur la feuille de calcul.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    SendKeys "{F2}"
End Sub

Appuyez sur Alt+ F11pour afficher l'éditeur VBA, développez l'arborescence de gauche jusqu'à voir la feuille de calcul souhaitée, double-cliquez sur cette feuille de calcul et collez-y le code ci-dessus.

Vous pouvez désactiver cela simplement en ajoutant 'devant la ligne de code pour en faire un commentaire comme:

'SendKeys "{F2}"

Ou, je suppose, en le supprimant complètement.


Cela fonctionne également très bien si vous utilisez enterpour déplacer des cellules (ce qui, je pense, est votre intention principale), car il commencera à les modifier immédiatement et vous permettra de vous déplacer beaucoup plus rapidement.

enderland
la source
Btw, merci d'avoir posé cette question, je vais l'utiliser moi-même un peu car c'est beaucoup mieux pour beaucoup de manipulation de données!
enderland
Parfait! C'est exactement ce que je veux pour ce classeur, merci beaucoup. La seule légère bizarrerie que j'ai remarquée est que si j'utilise 'Shift + Tab' pour parcourir les cellules de droite à gauche, je dois réprimer 'Shift' à chaque fois, au lieu de pouvoir simplement le maintenir enfoncé.
David Gard
3
Gardez à l'esprit que l'utilisation de VBA de cette manière a ses inconvénients. Plus particulièrement, il éliminera toute fonctionnalité d'annulation sur la feuille. Donc, si vous bousillez et supprimez certaines données accidentellement, vous feriez mieux d'avoir une sauvegarde. De plus, les touches fléchées ne fonctionnent plus pour naviguer dans la feuille.
Excellll
3
@Excellll a un excellent point; votre fonctionnalité d'annulation est perdue. Pour une macro aussi simple, cela ne semble pas en valoir la peine. Envisagez plutôt d'utiliser AutoHotKey - vous pouvez lui dire d'appuyer sur F2 après Entrée, Maj + Entrée, Tab ou Maj + Tab. (Et vous pouvez également vous assurer que cela ne fonctionne que dans Excel.)
benshepherd
19

Vous pouvez passer en mode édition à partir du clavier via la F2touche, ou vous pouvez créer une macro VB qui a une fenêtre contextuelle / invite. Bien qu'à strictement parler il n'y ait pas d'option que je sache pour rester en F2mode, vous pouvez écrire un petit script dans Excel qui descend d'une ligne et pénètre dans la cellule (puis demandez à cette macro de remplacer votre "retour / tabulation" dans un nouveau col) .

Modifier: Une autre option serait de gérer ces modifications via un programme différent avec une interface utilisateur plus accessible pour ce type de données. Par exemple, poussez toutes ces données dans un programme de base de données comme Access, puis gérez les champs de données via leur interface utilisateur.

Cependant, tout cela évite le problème principal, pourquoi y a-t-il 10 000 lignes de données qui nécessitent un nettoyage manuel? Si écrire un seul script pour les gouverner tous est trop lourd, pourquoi ne pas diviser le tableau en groupes significatifs et les aborder de cette façon? Il est difficile d'imaginer que 10 000 champs de données doivent être traités manuellement et il n'y a aucune solution de contournement.

Moïse
la source
1
Merci pour le conseil F2, cela aide. Je vais essayer d'écraser les touches retour / tabulation de cette feuille de calcul avec cette fonction. Merci.
David Gard
@DavidGard aucun problème. J'ai également mis à jour ma réponse avec une troisième alternative qui peut fonctionner pour vous.
Moïse
3
+1...why is there 10,000 rows of data that require manual cleaning?
Icode4food
7

La seule façon que je sache, c'est en appuyant sur F2. Cela fonctionne à chaque fois, jusqu'à ce que vous appuyiez sur Return/ Enterpour quitter la cellule actuelle.

Kevdog777
la source
2

Une réponse possible serait un programme appelé "Bouton de la souris du milieu (ou molette) pour DoubleClick" il est disponible sur codeproject Je ne sais pas si je devrais poster des liens ici mais je suis sûr que google peut être votre ami. ce qu'il fait, c'est qu'il est actif, vous pouvez cliquer sur le bouton central de votre souris et il enverra un double clic gauche à votre ordinateur.

Dan
la source
0

Appuyez sur "F2" est probablement le meilleur choix, mais il ne restera pas en mode édition. Si vous connaissez les modifications que vous souhaitez effectuer, la recherche / remplacement (Ctrl + F) est également très utile et peut vous faire gagner beaucoup de temps. De plus, vous pouvez trouver une liste de plus de 200 raccourcis clavier Excel ici .

Carlos Manta
la source
0

sélectionnez la colonne entière et utilisez la fonction de recherche et de remplacement. il suffit de mettre un espace vide à la fois sur rechercher et remplacer, puis il mettra à jour - comme cela, vous pouvez tromper Excel et cela fonctionne

exceller
la source
0

Essayez la formule = concaténer. Joignez les informations de deux cellules ensemble. Ensuite, vous pouvez copier et coller des valeurs.

Luc
la source
0

Vérifiez les paramètres du format de cellule ... si la cellule a une coche cachée sur l'onglet de protection, elle ne vous donnera pas la possibilité de modifier le texte écrit de la cellule. la case à cocher doit être décochée afin de voir le contenu de la boîte et de la modifier selon vos besoins.

user500030
la source
Cela ne répond pas vraiment à ce qui a été demandé dans la question. Avec un peu plus de représentants, vous pourrez ajouter des informations utiles dans un commentaire.
fixer1234
0

C'était la solution la plus simple qui a fonctionné pour moi.

http://ccm.net/forum/affich-172180-unable-to-change-date-format-in-excel

  1. Modifiez d'abord votre format à la date spécifique que vous souhaitez pour votre colonne de données.
  2. Avec la colonne sélectionnée, sélectionnez "Copier"
  3. Bloc-notes ouvert (PAS WORD, il doit être un bloc-notes)
  4. Collez vos données dans le bloc-notes.
  5. Dans le bloc-notes, appuyez sur CTRL + A (sélectionne toutes les cellules) puis appuyez sur CTRL + C (copie les données)
  6. Collez les données dans Excel.
  7. Cela dira que la taille n'est pas la même, collez-la quand même.
Michael LaPalme
la source
0

Si vous modifiez les cellules sans formule ou quelque chose qui ne peut être fait que dans Excel, copiez simplement ces cellules et collez-les en tant que colonnes ou tableaux normaux dans un document Word. Modifiez librement les données de ces tableaux, puis copiez-les à l'endroit d'origine dans Excel.

Jack
la source