Appel aux pros VBA - Aide pour copier/coller double click

Bonjour à tous,

Je reviens sur ce forum aujourd'hui car, ayant déjà été bloqué sur excel, j'avais posté sur ce forum et la réactivité ainsi que la qualité des réponses étaient sans égale.

Merci d'ailleur à Amadéus pour ça fonction personnalisée dont je me serre quasiment tous les jours! fonction concatsi !

Sujet: https://forum.excel-pratique.com/excel/recherche-de-cellule-contenant-texte-concatener-t53624.html

Donc voilà, je suis à nouveau bloqué, car je me débrouille sur excel quand il s'agit de rentrer des formules, mais pour le VBA malheureusement, ce n'est pas mon fort

Et la fonction que je souhaiterais mettre en place ne peut se faire que par du VBA ... du moins de se que j'ai pu lire sur internet.

c'est d'ailleur sur le site excel-pratique que j'ai pu voir que la fonction double click se faisait par cet évenement:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

à coller dans la feuille à cliquer.

Mais après faire ce que je souhaite ....

Je vais essayer de vous exposer mon souhait de la manière la plus claire possible, afin que vous puissiez me dire si c'est envisageable.

Voilà mon problème:

J'ai en fait, 3 fichiers .xls.

Fichier "N.xls": contenant un tableau

Fichier "N1.xls": contenant un tableau avec la même mise en forme que "N" seul le nombre de ligne et les données peuvent changer.

Fichier "Vérification.xls": prend automatiquement les valeurs des 2 tableaux et les compare via une mise en forme pour voir les erreurs.

Ce que je souhaite faire maintenant:

Une fois les 3 fichiers ouverts, je souhaite pouvoir corriger mes cellules via mon fichier "vérification"!

Important à savoir:

Mes 2 fichiers N et N1 auront toujours se nom, et les tableaux seront toujours sur la feuille "feuil3".

Les 2 tableaux des fichiers auront toujours les colonnes (repère,marque,couleur,prix) au même endroit! mise en forme parfaitement identique en terme, en nombre et en position donc!

Toute fois, les lignes elles, peuvent être situées à des endroits différents, exemple la ligne du repère 1 "renault" qui correspond à la ligne 5, pourrait par exemple par la suite se retrouver en fin du tableau à la place du repère 4 "audi" donc en ligne 8 pour le deuxième fichier.

Pour résoudre le problème il faudrait réussir à faire une sorte de copier/coller en "recherche croisée",

Donc voilà l'idée, quand je clique sur Audi (la donnée du fichier "N") dans mon fichier de vérification, celui-ci recherche "4" et "*marque*" dans le fichier "N1" et au croisement de ces données fait un collage spéciale par valeur dans le fichier "N1".

Mais il faut que l'inverse soit possible aussi, si je clique sur Audy (la donnée du fichier "N1"), celui-ci recherche "4" et "*marque*"

dans le fichier "N" et au croisement de ces données fait un collage spéciale par valeur dans le fichier "N".

Voilà, c'est un peu trop compliqué pour moi là!

c'est pour ça que je sollicite votre aide et vos connaissance en la matière!

Je vous remerci à l'avance pour vos éclaircicement!

*Edit: j'avais oublié de vous joindre les 3 fichiers.

21n.xls (16.00 Ko)
28n1.xls (16.00 Ko)
27verification.xls (20.00 Ko)

Serait-il possible que mon problème ne soit pas réalisable?

Bonjour

Une première version à tester

Que dire à part ... Whaou ...

Un grand merci Bonzaï64, votre macro est plus qu'impressionnante

je n'en comprends pas une ligne

ce qui me surprend le plus c'est que la macro ne fait référence à aucun moment aux noms des fichiers, "N" et "N1", ou encore aux repères ou au nom des colonnes, mais elle marche tout de même!

là je suis bluffé! et ne comprends pas comment cette macro fonctionne!

je suis un novice en vba, je me contente d'enregistrer les actions que je veux faire, je regarde le code pour essayer de comprendre et je le réaménage, mais là .... c'est un autre monde !

et en plus un grand merci pour l'ajout de la petite message box !! un petit luxe que je n'avais même pas demandé!

Mais qui va en fait rudement servir!

Car en fait les fichiers que j'ai fourni sont un exemple vulgarisé de mon fichier, qui est en réalité un fichier pour le travail pour optimiser et faciliter le traitement de nos données, et qui est amené à être utilisé par des personnes encore plus novices que moi.

Je vais donc dès demain matin 8h tester cette macro sur le vrai fichier, et vous tiendrez au courant !

Encore un grand merci

et j'aurais peut-être par la suite une dernière requête, je ferais ma demande dans ce même post afin de garder une traçabilité pour les gens qui voudrais réutiliser cette macro!

bonjour Bonzaï64,

Bon, malheureusement je n'ai pas réussi à transposer la macro dans mon fichier.

Je pense que celà viens du fait que les formules que j'ai insérée dans le fichier exemple ne sont pas les mêmes

que mon fichier de travail.

Est-ce qu'il serait possible de voir ce qui ne va pas avec le bon fichier cette fois-ci, les 3 fichiers ont la mise en forme exact au fichier de travail, et les mêmes formules !

J'ai même laissé les options "figer les volets" présent dans les fichiers d'origine, car je me demande si celà peut déranger la macro?

seules les données sont remplacées et sont à titre d'exemple, mais comme la macro n'à l'air de faire aucunes références aux données, les remplacées par la suite ne devrait pas être un problème? exemple si je remplace "prix" par "banane" ...

par contre, chose que je viens de m'aperçevoir et j'avais oublié , mais dans mon fichier de vérification, il y à 2 colonnes qui sont inversées, en gros au lieu de "modèle et couleur" dans les fichiers N et N1, le fichier de vérification affiche "couleur et modèle",

ça ne gêne en rien les formules, mais est-ce que ça peut causer un problème pour la macro?

Si oui, ce n'est pas grave je pourrais inverser, pour coller à l'ordre des colonnes de N et N1.

Et deuxième aussi, qui je pense va poser un plus gros problème, et donc (facultatif)

J'ai une colonne "option" fusionnée sur 3 colonnes ! donc la colonne "option" comporte 3 données à comparer.

Pour la formule, elle compare la présence des 3 données dans la colonne "option" indifféremment de leur ordre respectif. donc le surlignement n'est effectif que quand il y à une erreur réelle.

donc si les données sont dans le désordre dans ces 3 colonnes mais qu'il n'y à pas d'erreur, excel n'affiche pas d'erreur.

et malheureusement si la ligne est en erreur, la formule n'indique pas quelle donnée est en erreur, c'est à l'utilisateur de le voir ! il est donc impossible pour la macro d'instruire une correction automatique.

Il faudrait une sorte de "fenêtre de possibilité", par exemple si je clique sur la 1ere case de la colonne "option" du fichier N, excel me propose de coller la valeur cliquée dans le fichier N1 dans la 1ere, 2eme, ou 3eme case de la colonne "option". et inversement toujours biensur ....

je pense que ça complique très largement la chose !

et si ça oblige à se torturer l'esprit, je préfère passer pour ça, je rendrais les colonnes "option" non cliquable en protegeant les cellules, et le changement manuelle sera alors de mise.

Je vous transmet donc les fichiers en question, en espérant qu'ils ne donneront pas trop de fil à retordre

Et merci pour votre aide.

ps: j'ai du mettre le fichier Vérif en .zip à cause de la limite de poids de 300Ko.

18n.xls (14.00 Ko)
20n1.xls (19.00 Ko)
44verif.zip (188.91 Ko)

Ha oui j.oublié, dans le fichier verification, les 3 premières colonnes soi "rep.n, rep.n1 et marque n1" ne sont pas à prendre en compte, dans le sens ou l'utilisateur

Ne sera jamais amené à cliquer dessus! Je pense proteger cette plage de cellule!

Bonjour

Tu compliques sérieusement le Schmilblick

Les cellules options ne sont pas traitées

A tester

Merci Bonzaï64

Cette macro est énorme, et comme la mise en forme est à l'identique de mon fichier de travail il ne devrait plus y avoir de problème!

et pour énorme je pèse mes mots, en effets j'ai demandé ce matin à un collègue de travail (qui est déjà à mes yeux un pro excel, car

il utilise beaucoup le VBA) , de jeter un coup d’œil à la macro pour essayer de me la corrigé et ainsi éviter de solliciter ton aide à nouveau, et bien même lui n’a rien pu faire, et n’a pas compris comment fonctionnait cette macro ...

il va falloir que je la sauvegarde de toute manipulation hasardeuse car je ne pourrais la réparer.

Pour les colonnes options ce n'est vraiment pas grave!

car finalement un changement manuel est peut-être plus sur!

Encore un grand merci !!! ce fichier va faciliter le travail de beaucoup de gens grâce à ton aide!

Et sinon, j'aurais une dernière petite requête que j'avais annoncer dans mes messages précédents

et j'aurais peut-être par la suite une dernière requête, je ferais ma demande dans ce même post afin de garder une traçabilité pour les gens qui voudrais réutiliser cette macro!

Désolé, je ne veux pas paraître profiteur, mais avoir des gens aussi doué pour se faire aider et quand certaines questions reste en suspend, c'est frustrant de ne pas demander

Mais je comprendrais parfaitement que tu refuse, tellement la macro actuelle est démentielle !

mais je pense que ma requête est un peu plus simple maintenant que l’événement double clique est en place, d’ailleurs la requête en question n'aurait pas lieux si ma première n'avait pas était résolu.

après est-ce réellement le cas, si ça se trouve c'est plus compliqué, mais vu les exigences de la première macro ça me semble plus simple.

En fait je souhaiterais garder une trace des événements "double clique", enregistrer en somme l'action qui à été faite. mais seulement dans un cas, quand on clique sur une case N pour corriger N1, l'inverse ne m'est pas utile.

si on corrige les lignes 1 et 3 en cliquant dans les colonnes N pour copier vers N1 soit blanc, 206 et vert

alors dans un nouvel onglet du fichier de modification on enregistre les nouvelles valeurs, soit les valeur de N.

donc la on voit

repère 1, blanc, 206

repère 4, vert

et l'inverse ne doit pas être enregistré, si clique sur les données N1 soit rose, 205 et orange, rien est inscrit.

est-ce que c'est réalisable assez facilement?

et ce sera ma dernière et ultime requête!! promis juré

Bonsoir

Avant d'essayer de trouver une solution j'aimerai comprendre

Pourquoi tu commences en ligne 3 ?

Si on clique d'abord sur 206 avant Blanc le résultat sera t'il changé ?

Que se passe t'il si tu modifies l'ordre de la colonne 1 dans la fichier N1.xls ?

La copie ne devrait pas poser problème mais c'est où (quelle cellule) copier l'info

En attente de renseignements

Re bAnzaï, oui le "A" en grand et rouge car je viens de me rendre compte que j'écrivais bOnzaï

Pourquoi tu commences en ligne 3 ?

Le départ en ligne 3 est juste pour illustrer, comme c'est un nouvel onglet, peut importe ou ça démarre ... ça m'importe peu, je les remettrais dans l'ordre si besoin via une formule.

Si on clique d'abord sur 206 avant Blanc le résultat sera t'il changé ?

les informations peuvent être dans le désordre ce n'est pas grave!! genre 206 avant blanc etc ...

la seule contrainte je dirais c'est qu'il faudrait tout de même que les modifications enregistrées pour la ligne "peugeot" repère 1 donc, reste dans une même ligne dans le nouvel onglet. donc 206 et blanc sur la même ligne, et si un clic se fait sur "prix N" par exemple se rajoute à la suite de cette ligne.

Que se passe t'il si tu modifies l'ordre de la colonne 1 dans la fichier N1.xls ?

Je ne comprends pas trop mais je pense que tu parles de l'ordre des repères... si le repères 1 par exemple est relégué en dessous du repère 3,

et bien avec les formules que j'ai rentrés et t'as macro, et j'ai fait le test cela ne change rien, on aura toujours les bonnes données sur une même lignes, et t'as macro copie bien au bon endroit dans les 2 fichiers sources peut importe l'ordre des repères

La copie ne devrait pas poser problème mais c'est où (quelle cellule) copier l'info

et bien comme je disais pas d'exigence particulière, du moment que les données sont sur la même lignes.

idéalement, ce serait de reprendre les colonnes du fichier N ou N1 de le coller dans un onglet du fichier de vérification, et donc à chaque clique de modification N vers N1 la donnée N se colle dans se nouveau tableau.

Celà pourrait prendre cette alure, soit un tableau qui recolle exactement aux mêmes endroits dans l'ordre et en même "écart de ligne" (tableau 1), soit coller à la suite (tableau 2), soit coller à la suite et dans le désordre (tableau 3). du moment que les données restes bien sur leurs lignes réciproques c'est bon !

et encore le tableau ci-dessous impose l'ordre "206" avant "blanc", tu peux aussi t'abstenir de cet ordre, ne faire aucun tableau, la seule chose à respecter est "les données sur la même lignes".

En gris donc les données qui n'ont pas besoin d'être transmise a ce nouvel onglet, en orange facultatif, même en fait ne pas retransmettre les infos de repère, en y repensant je n'en n'est pas besoin pour cet onglet!

j’espère que je ne t'est pas plus embrouillé

Bonsoir

Mickou14 a écrit :

les informations peuvent être dans le désordre ce n'est pas grave!! genre 206 avant blanc etc ...

J'ai fait la macro dans ce sens (plus facile )

A tester

Parfait

c'est exactement ce que je souhaitais !!! je n'ai plus qu'à insérer cette formidable macro dans mon fichier de travail lundi et voir si des anomalies sont à constater, mais c'est normalement impossible, car j'ai bien fait attention a transmettre un fichier identique, en mise en forme et formules!

je pense que cette macro pourra être utile à d'autres personnes, car en cherchant sur le net "copier coller par double clique vers autres fichiers" je n'avait rien trouvé en réponse, des gens cherchaient comme moi une solution mais n'ont pas eut de réponse, en espérant qu'ils trouveront se poste!

Encore un grand merci banzaï64 ! je ne sais se que je pourrais faire pour te dédommager pour le travail accompli!

je suis plus à l'aise sur photoshop que sur excel, si un jour tu rencontre un problème pour un traitement d'image, ou création d'image pour faire des logos ou bouton transparents pour des msg box à l'interface personnalisées par exemple (si c'est possible de le faire ^^,et bien envois moi un MP!! et je verrais ce que je peux faire!!

Bon Week-end à toi!

Bonjour

Mickou14 a écrit :

mais c'est normalement impossible

testes le bien à fond avant de le dire

Mickou14 a écrit :

je ne sais se que je pourrais faire pour te dédommager pour le travail accompli!

Tu l'as déjà fait : Tu as dit Merci

A une prochaine

La macro marche parfaitement dans mon fichier de travail !!!!

Un grand Merci Bansai64,

J'ai essayé de piquer un bout de ton code pour mettre des messages box, pour vérifier que les fichiers N et N1 sont bien ouvert

avant de travailler sur le fichier de vérif.

J'ai bien réussit mon code, en même temps il est simple, par contre je rencontre un problème,

en effet, mon fichier de vérif recalcul les liaisons entre lui, et les 2 autres fichiers à l'ouverture, (normal) mais celà prend quelques secondes suivant le nombre d'informations présentes dans les 2 autres fichiers !

et donc le calcul est inutile car si le fichier N ou N1 n'est pas ouvert, une fenêtre s'ouvre et invite à ouvrir les 2 fichiers avant d'ouvrir celui-ci et en cliquant sur ok ça ferme le fichier.

j'ai donc regardé sur internet et j'ai toruvé un code qui permet d'annuler celà, et de le réactiver en fin de macro si besoin!

donc en début de macro workbook open()

j'ai donc:

annulé la mise à jour des liens

annulé le calcul

et annulé le rafraichissement soit:

Private Sub workbook_open()
UpdateLinks = xlUpdateLinksNever
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Miracle, lorsque que j'ouvre seulement le fichier "Vérif" la fenêtre qui me dit que le fichier N est manquant apparâit bien avant de calculer quoi que ce soit! (le code pour la présence du fichier N est le premier code)

Mais.... parce qu'il y à toujours un mais ....

si j'ouvre le fichier vérif, et le fichier N, donc il manque le fichier N1 (Le 2eme code après avoir vérifié N) et bien celui-ci fait le calcul avant d'aller au message d'erreur ...

et je ne comprend pas étant donné que le code pour annuler tout ça est en début de macro ...

voici le code complet:

Private Sub workbook_open()
UpdateLinks = xlUpdateLinksNever
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

' Vérification ouverture des fichiers

    'Vérification ouverture N.xls
        On Error GoTo FichierN
        Workbooks("N.xls").Activate

    'Vérification ouverture N1.xls
        On Error GoTo FichierN1
        Workbooks("N1.xls").Activate

        Exit Sub

FichierN:
MsgBox "Le fichier N.xls n'est pas ouvert!" & Chr(10) & Chr(10) & "Veuillez vous assurer que les fichiers N et N1" & Chr(10) & "sont ouverts avant d'ouvrir ce fichier" & Chr(10) & Chr(10) & "Veuillez recommencer!", vbExclamation, "FICHIER ""N.xls"" NON OUVERT!"
Workbooks("Vérif.xls").Close False

FichierN1:
MsgBox "Le fichier N1.xls n'est pas ouvert!" & Chr(10) & Chr(10) & "Veuillez vous assurer que les fichiers N et N1" & Chr(10) & "sont ouverts avant d'ouvrir ce fichier" & Chr(10) & Chr(10) & "Veuillez recommencer!", vbExclamation, "FICHIER ""N.xls"" NON OUVERT!"
Workbooks("Vérif.xls").Close False

End Sub

mon code est bon pourtant non ?

c'est une macro pour le même fichier, donc transposable sur les fichiers que tu m'à redonné avec t'as macro !

Bonjour

Aucune idée

Si quelqu'un passe par ici et qui connaisse une solution,qu'il la partage

Merci

Rechercher des sujets similaires à "appel pros vba aide copier coller double click"