cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 janv. 2008 à 20:51
Salut
Cool ! Une première question avec la bonne catégorie. Bel effort (ça devient rare).
Erreur 438 : "Propriété ou méthode non gérée par cet objet" (c'est important de taper le descro de l'erreur )
Bien que cette macro ait été enregistrée, tu y as fait des modifs, surement.
Je pense (ma boule de cristal V2.0 et moi), que la syntaxe ([A6] & [C4] & [B9] & [E5], n'est pas correcte.
Essaye éventuellement ([A6][C4][B9][E5], car il s'agit là de références à des cellules, pas des textes classiques
Je ne pense pas qu'on ait le droit de fournir des Range de cellules qui sont disjointes.
(36 sec plus tard)
Et puis VLookUp : Fonction inconnue sous Excel 2003 ...
Quelle version de Excel utilises-tu ?
As-tu des renseignements sur cette fonction ?
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Pgueret
Messages postés10Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention21 janvier 2008 17 janv. 2008 à 21:06
Alors oui, c'est exact j'ai repris cette formule sur un forum...
j'explique, j'ai conçu un fichier excel qui pése 90 Mo..
C'est dû au recherchev sous excel et je voulais la transformer en vb si cela pese moins lourds...
ma recherchev sous Excel donc (Ver. 2003) :
=recherchev(A5&C4&B9&E5;Feuil!A:E;3;0) bref...
Alors qu'est ce que je peux faire? et je rappelle je suis amateur.
Pgueret
Messages postés10Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention21 janvier 2008 17 janv. 2008 à 22:38
Merci, mais quelques questions?
- Comment faire pour que cette recherche V s'effectue o démarrage du fichier?
-Est - ce possible d'ecrire cette formule Sous visual Basic, mais qu'elle ne s'affiche pas sur Excel?
pour un gain de place
J'espere être assez claire, merci de vos réponses.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 17 janv. 2008 à 22:50
Ce que je t'ai donné, c'est pour inscrire une formule dans une cellule. Si tu veux simplement faire une recherche dans le fichier sans l'inscrire physiquement, tu pourrais alors utiliser la fonction Find.
Pour créer une action à l'ouverture du programme, il faut utiliser Worksheet_Open dans ThisWorkbook
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
'Recherche dans la feuille 2, colonne A, la concaténation faite en feuille 1
Set Recherche = Sheets("Feuil2").Columns("A").Find(Valeur, LookAt:=xlWhole)
If Not Recherche Is Nothing Then
MsgBox "La valeur a été trouvée en cellule: " & Recherche.Address
Else
MsgBox "Non trouvé"
End If
xlWhole signifie que la valeur de la cellule est identique à celle recherchée, et non en partie.
ab fait partie de abc
Ici on cherche ab, disons, et on ne veut pas trouver abc
Si on change xlWhole pour xlPart, abc serait un réponse possible ...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 17 janv. 2008 à 23:46
Là, il faudrait que tu expliques plus clairement...
À l'origine, tu avais ceci de concaténé
[A6] & [C4] & [B9] & [E5]
Donc, pour moi, aucune logique ou constance.
Si tu veux copier cette formule, c'est donc que tu ne veux pas récupérer la valeur dans une variable, mais bien l'inscrire sur la feuille (active ou non...)
Si tu veux l'inscrire sur la feuille, utilise Formula comme je t'ai indiqué au début.
Et là, tout dépend comment tu copies cette formule. Comme je ne vois aucune constance dans ta concaténation, je ne peux pas vraiment t'aider. Est-ce que tu veux utiliser toujours la même concaténation pour toutes les recherches ou tu veux que cette concaténation soit modifiée à chaque ligne ?
Je commence à détester ce mot... concaténation
Pour la couleur aussi, il faudrait que tu expliques. Il existe la mise en forme conditionnelle qui pourrait t'aider. Autrement, c'est aussi faisable sous VBA. Mais peut-être devrais-tu redémarrer un autre sujet pour cette question...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Pgueret
Messages postés10Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention21 janvier 2008 18 janv. 2008 à 00:11
Voici ma recherche V
=recherchev(A6&C4&B9&C5;N_importe_quel_feuille!;C:D;2;0)
j'effectue cette recherche il doit me trouver soit O ou C ou P ou P-N
R01B = A6
025 = C4
00 = B9
03 C5
En faites c'est une rechercheV( pour mon taf):
Elle me recherche l'emplacement ds une carte (avec tous les emplacements) et me reporte O, C, P... est suivant cette lettre il y a une couleur.
Donc j'ai autant de formules que d'emplacements...
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 18 janv. 2008 à 00:42
OK, mais les cellules A6, C4, B9 et C5 n'ont pas de $ donc, à la ligne suivante, la recherche se fera sur A7,C5,B10 et C6, c'est ça ?
Sinon, il faudrait mettre A$6, C$4, ...
Et pour être certain que tout est clair,
Dans la feuille que tu recherches, il y a cette valeur inscrite en colonne C
R01B0250003
et ce, dans une seule cellule... c'est ça ?
Sinon, je manque encore d'info..
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 20 janv. 2008 à 19:14
Pour la grosseur de ton fichier (90 megs), je pense que tu pourrais simplement faire du ménage...
Il n'y sûrement pas que des formules pour le grossir comme ça.
Tu dois utiliser des couleurs et peut-être sur toute la longueur d'une colonne plutôt que seulement le Range nécessaire.
Parcours tes feuilles et regarde comment agissent les barres de défilement.
En principe, si tu descends la barre jusqu'en bas, tu dois arriver à la dernière ligne de données. Si tu arrives plus bas, c'est qu'il y a du formatage dans tes cellules vides. Même chose pour les colonnes.
Pour vider l'espace utilisé, mais non nécessaire, tu sélectionnes la première ligne vide sous les données, puis tu tapes Ctrl-Maj-Flèche bas. Une fois sélectionnées tu supprimes ces lignes, pas seulement effacer. Même chose pour les colonnes.
Si vraiment tu as des dizaines de milliers de formules, tu pourrais utiliser une ligne en haut pour stocker tes formules de base, tu les copies sur toutes les lignes nécessaires et tu les copies/colles en valeur, toujours en conservant la ligne de formules de base pour éviter de devoir se les retaper...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 21 janv. 2008 à 11:06
Une idée comme ça...
Je ne les utilise jamais, mais tu pourrais éventuellement créer tes TCD par code et n'en avoir qu'un plutôt que les créer à l'avance et en avoir toujours plusieurs qui ne servent peut-être que rarement... (?)
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI