Transformer en numéro de colonne une saisie utilisateur - VB/VBA/VBS - Programmation
Marsh Posté le 25-05-2012 à 14:01:46
Bonjour,
je ne comprends pas le problème.
Ça, ça fonctionne très bien :
Code :
|
Marsh Posté le 25-05-2012 à 15:17:51
Si dans ma cellule E9 l'utilisateur saisit "C" et que mon code est le suivant, ça ne marche pas (mes cellules sont vides) :
colonne_mdd_nom_table = ThisWorkbook.Sheets("6-Macros d'aide à la MAJ" ).Range("E9" ).Value |
Alors que si j'écris :
While Workbooks("XL_DMM_10.7.02.xls" ).Sheets("XL_DMM" ).Range("C" & 2 + j).Value <> "" |
Là ça fonctionne. Je suppose qu'il y a quelque part un problème de conversion de la valeur, qui doit être mal comprise par Excel, mais je ne sais pas où.
Marsh Posté le 25-05-2012 à 15:34:27
Et si tu fais ça, ça marche ?
Code :
|
Si oui, c'est que le problème se situe là :
Code :
|
Du coup, ajoute un message pour voir quelle valeur prend ta variable :
Code :
|
Marsh Posté le 25-05-2012 à 15:42:38
vave a écrit : Et si tu fais ça, ça marche ?
|
Non, ça ne fonctionne pas non plus.
(J'ai ajouté un Msgbox, ça ne coute rien, et il me confirme bien que ma variable vaut C.)
Je n'avais pas remplacé au bon endroit.
Finalement ça fonctionne. Voilà qui me semble très étrange...
Comme j'ai rajouté d'autres choses dans mon code entre temps, je suppose qu'il y avait une erreur quelque part et que je l'ai corrigée malgré moi.
Merci beaucoup pour ton aide
Marsh Posté le 25-05-2012 à 11:21:26
Bonjour,
Une question pourtant simple me laisse perplexe en ce jour de replongée dans les macro Excel.
Ma macro est dans un premier fichier Excel. J'utilise des données qui sont dans un autre fichier Excel. Ces données étant susceptibles de changer de place, je demande à l'utilisateur de systématiquement préciser le nom des colonnes dans lesquelles je dois aller faire mes recherches.
Ensuite, pour moi, deux façons de travailler :
- Cas 1 : soit j'arrive à utiliser la valeur donnée par l'utilisateur directement dans un "range", et ça me va
- Cas 2 : soit j'arrive à convertir la valeur saisie par l'utilisateur en numéro de colonne, que j'utilise dans un "cells", et ça me va aussi
Cas 1 :
Je n'y arrive pas. Autant "range" semble accepter les variables pour ce qui est des numéros de ligne, autant pour les valeurs texte reprenant des noms de colonne, apparemment il ne veut pas, puisque ça plante.
Cas 2 :
Je n'y arrive pas non plus. J'ai testé plein de fonctions diverses et variées, mais elles me permettent généralement de récupérer la valeur en numéro de la cellule courante. Or, c'est le texte de cette cellule que je veux convertir, ça ne fonctionne donc pas.
J'ai également fait des tests avec "chr"/"asc" mais le souci c'est que les colonnes en question ont parfois deux lettres (typiquement, AR et AS qui m'ont permis de détecter le problème), ça ne fonctionne donc pas.
Voilà, je suppose que le pb est basique, mais je viens d'y passer une heure sans succès, donc si quelqu'un pouvait me mettre sur une piste, ça m'aiderait bien.
Merci d'avance à ceux qui voudront bien m'aider,