Création de deux macros worksheet change sur le même fichier

laclau

XLDnaute Nouveau
Bonjour,

Je suis en train d'établir un fichier Excel et je rencontre des petites difficultés en VBA.

J'ai créé un worksheet Change, qui me fait qu'à chaque fois qu'on modifie la cellule B5, une matrice est créée qui va chercher le fichier excel dont le nom est la valeur de la cellule B5, et qui va prendre une plage de cellules de la feuille 1 de ce fichier.
Je me sert de cette matrice pour une rechercheV dans un tableau.
Cependant je voudrait maintenant, sur le même fichier, créer une autre matrice grâce à VBA, qui ira toujours chercher le fichier portant de nom de la cellule B5, mais qui cette fois ci prendra une plage de cellules de la feuille 2 de ce fichier.
Est-ce possible ?
J'ai essayé de refaire une procédure worksheet change sauf qu'il ne peut pas y en avoir deux sur le même fichier, j'ai essayé de rajouter une matrice dans ma première procédure, j'ai essayé de rajouter une fonction si dans la procédure, mais rien ne fonctionne, on ne me propose pas ma matrice2 dans ma fonction recherche V...
Pouvez vous m'aider ?

Merci
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Création de deux macros worksheet change sur le même fichier

re

Chez moi ce n'est pas le cas
(Mais chez moi ce n'est pas chez toi et donc les liaisons que tu as avec les autres fichiers, je ne l'ai pas)

Je viens de m'apercevoir de ceci
=RECHERCHEV(G21;matrice2;5;FAUX)

Il n'y a pas de colonne 5 dans matrice2 puisque la plage est B:C
 

Staple1600

XLDnaute Barbatruc
Re : Création de deux macros worksheet change sur le même fichier

Re

Pour ne pas être parasité par les liaisons manquantes j'ai créé un petit exemple
(voir copie écran ci-dessous) et cela fonctionne
(j'ai deux classeurs ouverts cbase.xls et celui avec les recherchev)
exmatricesok.jpg
Le code VBA suit la même syntaxe que la tienne
(seule la façon dont est structuré la "base de donnée" change
(il n'y a pas de ligne vide)

Ci-dessous le code VBA utilisé dans cet exemple
'evenement qui se produit à chaque changement de valeur dans une cellule
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   'test si on modifie la cellule F5
    If Target.Address = "$F$5" Then
        'construit le nom du fichier par rapport au N° de l'affaire sélectionné
        nomfichier = Range("F5").Value & ".xls"
        'construit une variable appelé matrice qui nous sert dans la rechercheV
        Names.Add Name:="matrice", RefersTo:="=[" & nomfichier & "]BASE!" & Range("$A$1:$B$10").Address, Visible:=True
        Names.Add Name:="matrice2", RefersTo:="=[" & nomfichier & "]BASE!" & Range("$A$1:$C$10").Address, Visible:=True
        'met à jour tous les calculs (les recherchev)
        ActiveSheet.Calculate
    End If
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Création de deux macros worksheet change sur le même fichier

Re


Pourquoi d'ailleurs crées-tu deux noms?
Car si on prends mon dernier exemple, je pourrai crée une seule matrice qui englobe matrice et matrice2
(dans ce cas la plage de cellules serait A1:C10) que je nommerai matrice
et je n'aurais qu'a changer les numéros de colonne dans les recherchev
 

Staple1600

XLDnaute Barbatruc
Re : Création de deux macros worksheet change sur le même fichier

Re

Exact.
Mais qu'a cela ne tienne.
Cela marche aussi avec deux onglets ;)
matrice2.jpg
Donc je ne sais pas quelles sont les spécificités de tes fichiers originaux qui font que cela ne marche pas chez toi.

(tu as bien corrigé les numéros de colonnes de tes recherchev par rapport à tes matrices ?)
(Désormais les deux noms sont bien créés chez toi ou pas?)
 

laclau

XLDnaute Nouveau
Re : Création de deux macros worksheet change sur le même fichier

Ah alors maintenant j'ai les deux matrices dans ma rechercheV, par contre quand je fait entrer après avoir saisi ma rechercheV en entier, une fenêtre s'ouvre, je ne sais pas pourquoi..
 

Staple1600

XLDnaute Barbatruc
Re : Création de deux macros worksheet change sur le même fichier

Re


Bah comme c'est écrit
Dans le menu Edition (ne pas oublier qu'actuellement je suis sur XL2003 comme indiqué plus bas)
Voir sur le net pour trouver l'équivalent dans le ruban d'Excel 2007.

PS: Si tu as renommé l'onglet , tu as aussi changé le code VBA, avec ce nouveau nom?
 

Staple1600

XLDnaute Barbatruc
Re : Création de deux macros worksheet change sur le même fichier

Re


Moi aussi j'ai eu ce problème avec cette fenêtre et ce message.
C'est à ce moment là que j'ai crée mes propres fichiers exemple (cbase.xls) ;)

Essayes sur une copie de tes fichiers ou tu supprimeras toutes tes liaisons
(mais avant de supprimer mets ton code vba en commentaire pour éviter toute interaction.
ensuite supprimes les noms créés par ton code VBA
Enregistres les modifs.
Fermes Excel puis réouvres tes fichiers , décommentes ton code et réessayes tes recherchev)
 

Discussions similaires

Statistiques des forums

Discussions
312 679
Messages
2 090 849
Membres
104 677
dernier inscrit
soufiane12