Visual basic_Sélection d'une cellule en fonction d'une référence variable

Résolu
excelmen Messages postés 3 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 17 mai 2009 - 9 mai 2009 à 23:51
silina2009 Messages postés 1 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 25 mai 2009 - 25 mai 2009 à 11:25
Bonjour à tous,
A l'aide d'une petite macro, je souhaite atteindre une cellule précise sur un fichier Excel.
 La macro précédente ayant retiré une partie des lignes, je ne peux pas utiliser l'ordre qui m'est connu. Pour définir ma référence, j'utilise =EQUIV ,mais comment comment codifier correctement mon ordre?
Exemple:
Range("S1").Select
Cells(ActiveCell.Row + (ActiveCell.FormulaR1C1 = "=MATCH(""Visual"",C[-18],0)"), ActiveCell.Column - 17).Activate >> ne fonctionne pas, ni certaines variantes que j'ai tentées.

Ce serait sympa de me faire savoir si je me plante totalement ou (mieux), me proposer une alternative ou la correction utile pour que celà fonctionne.

Meilleures salutations à tous et n'oublier de profiter du printemps en plein air

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 mai 2009 à 00:03
Salut
Catégorie de la question modifiée de VB.Net --> VBA

Bizarre ton truc.
Tu additionnes un chiffre, ActiveCell.Row, avec un test qui te renverra True ou False !
Quelle cellule penses-tu atteindre ?
Tu dis
"je souhaite atteindre une cellule précise" : Laquelle ?
"je ne peux pas utiliser l'ordre qui m'est connu" : Que viens faire l'ordre la dedans ? L'ordre de quoi ?

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)
3
excelmen Messages postés 3 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 17 mai 2009
10 mai 2009 à 09:43
Salut,
En introduction, je me permets de faire savoir que je n'ai aucune formation en programmation et que j'analyse les macros de certains collègues pour les utiliser dans mes fichiers (à but personnel pour améliorer mon rendement professionnel)...en résumé, je ne connais pas le langage technique.

L'ordre d'activation de la macro est donné par un rectangle auquel j'affecte une macro

Mon but et d'aller une cellule plus à droite que ma référence qui est un nom. Le problème est que la référence n'est pas toujours situé sur la même ligne car je n'importe pas toujours de même nombre de données...avant d'effacer les lignes non utilisées

Exemple: Ma cellule A4 contient le mot "Soleil"Le langage code de l'exemple Range("B1").Select       ActiveCell.FormulaR1C1 "=MATCH(""soleil"",C[-1],0)"
Le résultat de l'opération me donne le chiffre 4 et c'est précisément ce chiffre 4 que je souhaite intégrer ensuite à la formule Cells(ActiveCell.Row + et avant ActiveCell.Column +0).Activate en partant de la cellule B1. Si cette formule n'est pas possible et qu'il n'y en a pas d'autre, tant pis.

Merci pour la réponse ci-dessus mais je ne comprend pas : un test qui te renverra True ou False  puisque de mon coté l'opération "Match" me donne un nombre

Meilleures salutations
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 mai 2009 à 10:02
Re
Ok pour le résultat de Match qui donne un nombre, mea culpa, mais le problème reste le même : Aucune Formula ne ressemble à un nombre tout seul; une Value oui

Donc, je retranscris en français ce que tu veux faire :
Dans une feuille de données, tu veux rechercher un texte puis récupérer le contenu d'une cellule située à proximité.
Plutôt que de jouer avec Row+1 ou Column+1, je te recommande Offset (décalage) = beaucoup plus pratique, exemple
En supprosant que la sélection se trouve sur la cellule de la donnée trouvée (avec une boucle de recherche ou un Match) et que tu veuilles récupérer le contenu de la cellule située dans la colonne à droite de cette cellule, deux lignes en dessous :
   Range("A1").Value = ActiveCell.Offset(2, 1).Value

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)
0
excelmen Messages postés 3 Date d'inscription samedi 9 mai 2009 Statut Membre Dernière intervention 17 mai 2009
17 mai 2009 à 22:20
Salut,


Merci pour ta réponse; je rentre d'un voyage prof. à l'étranger et je vais tenter de trouver une solution sur la base de ta réponse.


Meilleures salutations
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
silina2009 Messages postés 1 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 25 mai 2009
25 mai 2009 à 11:25
BONJOUR , j'ai une petite  problème en langue VB tel que je veut  faire l'affichage d'un courbe de mesure de température de 0°à 35° en fonction du temps ors je ne saivait pas comment  bein paraticiquer le programme en  vb et surtout pour le tracage du courbe
quelle q'un peut m'aider? 
merci d'avance
0
Rejoignez-nous