Ligne de code à intégrer dans VBA de recherche

Bonjour le forum,

Est-il possible d'intégrer la ligne de code:

Selection.Copy

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

Dans la macro ci-dessous que Banzaï64 m'a gentiment modifiée.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Kase As Range

If Not Application.Intersect(Target, Range("A2:A15")) Is Nothing Then

If Target.Count > 1 Then

For Each Kase In Target

Worksheet_Change Kase

Next Kase

Exit Sub

End If

If Not IsEmpty(Target.Value) Then 'on verifie que la cellule n'est pas vide de données

Target.Offset(0, 1).Formula = "=VLOOKUP(A2:A15,Feuil1!A1:B10,2,0)"

Else

Target.Offset(0, 1).ClearContents 'on efface la formule

End If

End If

End Sub

Merci pour votre aide

Bonjour

Il faut expliquer mieux que ça

Que fait tu exactement ?

Détailles bien les opérations, parce ce que bout de code ne veut rien dire

Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Mais souvent les procédures évènementielles perturbent le copier/coller, la solution est de neutraliser la procédure, de faire le copier/coller, et de rétablir la procédure ou de faire ...... mais là je ne sais pas

Bonjour,

Où veux tu ajouter ton code ???

Pour faire un copier / coller valeurs, il est plus simple de faire :

Selection.Value = Selection.Value

A nouveau je vous souhaite le bonjour,

Désolé si je m'exprime mal dans mes demandes.

En fait, mon problème est que je voudrait que cette macro tourne en prenant en charge la commande coller/ valeur de manière que celle-ci soit copiable vers un autre fichier sans que les données importées soient #N/A.

Moi en tant que novice, j'ai enregistré une macro et le code étant:

Selection.Copy

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

Celle-ci fonctionne pour faire d'une cellule en liaison avec formule ou macro, une cellule valeur, permettant de faire un copier coller vers d'autres fichiers sans pour cela recevoir d'erreur de type #NN/A.

Merci pour votre aide

Bonjour,

Je ne comprend pas pourquoi tu utilises une macro pour écrire une formule au lieu de le faire directement.

Une formule du type suivant aurait le même résultat :

=SI(ESTVIDE(A2);"";RECHERCHEV(A2;Feuil1!$A$1:$B$10;2;0))

Ou encore si elle est à copier vers un fichier extérieur :

=SI(ESTVIDE(A2);"";RECHERCHEV(A2;'[Nom du fichier.xlsx]Feuil1'!$A$1:$B$10;2;0))

bonjour Patrice,

J'ai tendance à penser que ce sujet, engagé sur une mauvaise voie, devrait être laissé à l'abandon au profit de son précédent sujet sur le même thème, mais on le saura que lorsque l'intéressé aura repris contact avec ses demandes et aura finalement compris son problème...

Bon dimanche

Bonjour MFerrand,

Désolé de ne pas répondre plus rapidement, responsabilité de Papy et difficulté de ce fait d'être actif sur la toile.

Tu as tout à fait raison dans ton dernier message et je confirme que la solution devrait venir de l'autre problème, à savoir régler le soucis de la macro de recherche ne me permettant pas de faire un copier/coller. Si j'ai posté cette deuxième demande, c'est en fait pour me donner deux chances au lieu d'une pour résoudre mon problème.

J'ai aussi pris en connaissance de ta solution pour mon problème dans ton dernier message sur l'autre question et je te remercie d'avoir essayé de m'aider. Le soucis reste entier, car il faudrait que l'action reste dans le fichier pour éviter de faire des manœuvres externes. Trop de personnes pouvant faire le copier/coller vers fichiers sans nom précis.

Encore merci pour tout et au plaisir de te lire.

Bonjour,

Quelle que soit la méthode d'export, directement dans le classeur destinataire ou en passant par un classeur de transit pour la réinsérer ensuite, la feuille exporté ne sera utilisable que dans un classeur disposant de la table de recherche. Exportée avec sa macro, cette dernière aura fait le nettoyage et pourra demeurer active et rétablir les formules qui fonctionnent si le destinataire à l'autre partie. Cela me paraît offrir plus de garantie qu'un copier-coller de valeurs, si on est bien dans cette situation.

A toi de voir.

Ferrand

Re,

Je continue de penser que pour une utilisation multiutilisateur, une macro n'est pas la bonne solution lorsqu'on ne maitrise pas le langage pour pouvoir corriger chaque bug qui se présentera inévitablement !

De plus, le fichier fourni dans l'autre post (ouvrir 2 post n'augmente pas les chances d'obtenir une bonne réponse, au contraire !) ne semble pas être représentatif du fichier réellement utilisé et les explications concernant le copier/coller ne sont pas des plus limpides.

Toutefois si les données de la feuille 1 ont la même structure que l'exemple et si leur nombre n'est pas trop important, on peut envisager de se passer à la fois de la macro et de la feuille 1 en intégrant les données dans une formule du type :

Patrice a écrit :

=CHOISIR(CHERCHE(A1;"ABCDEFG");"ZONE3";"ZONE2";"ZONE3";"ZONE1";"ZONE6";"ZONE5";"ZONE4")

On obtient ainsi une formule qui peut être copiée partout !

Resalut Patrice,

Ton point de vue est légitime, mais on ne sait pas grand chose des tenants et aboutissants...

La question posée sur l'autre sujet faisait état du fait que la macro ne suivait pas le "copier-coller"...

Si le but est de continuer à disposer de la macro, l'export de la feuille est la seule solution pratique à mettre en oeuvre.

Maintenant, je ne jurerais de rien... Inutile de se prendre la tête. On verra comment ça évolue.

A+

Ferrand

Rechercher des sujets similaires à "ligne code integrer vba recherche"