Visual basic_Sélection d'une cellule en fonction d'une référence variable [Résolu]

Signaler
Messages postés
3
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
17 mai 2009
-
Messages postés
1
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
25 mai 2009
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
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)
Messages postés
3
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
17 mai 2009

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
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)
Messages postés
3
Date d'inscription
samedi 9 mai 2009
Statut
Membre
Dernière intervention
17 mai 2009

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
Messages postés
1
Date d'inscription
lundi 25 mai 2009
Statut
Membre
Dernière intervention
25 mai 2009

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