Comment sélectionner plusieurs cellules avec ... [VB & Excel] - Programmation
Marsh Posté le 04-07-2002 à 12:32:38
peut pas marcher comme tu l'as écrit : rep est un range et non un string.
j'ai jamais fait de select dans les qq progrs VBA / Excel que j'ai fait, mais je fais ceci pour travailler en mode LC et non A1 :
'intValeur est un entier
'strTableau est un tableau de string
i=1
For Each Cell In Range(Cells(1, 1), Cells(intValeur, 1))
Cell.Value = strTableau(i)
i = i + 1
Next Cell
...
Range(Cells(4, 2), Cells(intValeur + 4, intValeur2 + 2)).NumberFormat = "# ##0.00"
...
donc j'imagine que
Range(Cells(4, 2), Cells(intValeur + 4, intValeur2 + 2)).select
doit marcher
Si ces exemples peuvent t'aider...
Marsh Posté le 04-07-2002 à 13:55:33
ben simplement ça non ?
Code :
|
Marsh Posté le 04-07-2002 à 14:43:48
JPA a écrit a écrit : peut pas marcher comme tu l'as écrit : rep est un range et non un string. j'ai jamais fait de select dans les qq progrs VBA / Excel que j'ai fait, mais je fais ceci pour travailler en mode LC et non A1 : 'intValeur est un entier 'strTableau est un tableau de string i=1 For Each Cell In Range(Cells(1, 1), Cells(intValeur, 1)) Cell.Value = strTableau(i) i = i + 1 Next Cell ... Range(Cells(4, 2), Cells(intValeur + 4, intValeur2 + 2)).NumberFormat = "# ##0.00" ... donc j'imagine que Range(Cells(4, 2), Cells(intValeur + 4, intValeur2 + 2)).select doit marcher Si ces exemples peuvent t'aider... |
j'ai pas tout compris...
latruffe a écrit a écrit :
|
j'vais essayer
Marsh Posté le 04-07-2002 à 15:10:39
latruffe a écrit a écrit : ben simplement ça non ?
|
ca marche ton truc... mais dès que je mets ma formule, ca déconne :
Code :
|
y'a quoi qui joue pas dans mon code??
Marsh Posté le 04-07-2002 à 16:25:11
Que veux tu faire exactement ?
Sélectionner de la cellule A4 à la cellule dont l'adresse est dans A2 ?
dans ce cas :
Dim fin As String
fin = Range("A2" ).Text
Range("A4:" & fin).Select
marche très bien
A+
Marsh Posté le 04-07-2002 à 19:37:58
JPA a écrit a écrit : Que veux tu faire exactement ? Sélectionner de la cellule A4 à la cellule dont l'adresse est dans A2 ? dans ce cas : Dim fin As String fin = Range("A2" ).Text Range("A4:" & fin).Select marche très bien A+ |
ben en fait, j'aimerais sélectionner une base de donnée entière... je connais le nombre de cases occupées verticalement grâce à la cellule "A2" et horizontalement la taille est fixe (14 cellules). Il est a noter que le nombre en "A2" peut changer!
Donc ce que j'aimerais faire, c'est sélectionner entièrement cette base de données grâce a des variables...
Marsh Posté le 04-07-2002 à 20:42:33
JPA a écrit a écrit : Que veux tu faire exactement ? Sélectionner de la cellule A4 à la cellule dont l'adresse est dans A2 ? dans ce cas : Dim fin As String fin = Range("A2" ).Text Range("A4:" & fin).Select marche très bien A+ |
ta solution ne sélectionnera que la 1ère colonne...alors qu'il y en a 14 a sélectionner!
Marsh Posté le 05-07-2002 à 09:27:35
Dans A2 : nbre de lignes de la BDD
Dim nblig As Integer
nblig = Range("A2" ).Value
Range(Cells(4, 1), Cells(nblig + 4, 14)).Select
'Remarque : Cells(4, 1) correspond à la cellule A4
Tu aurais essayé de comprendre le code que je t'avais donné dans mes premiers exemples, tu y serais arrivé tout seul
A+
Marsh Posté le 05-07-2002 à 10:48:00
JPA a écrit a écrit : Dans A2 : nbre de lignes de la BDD Dim nblig As Integer nblig = Range("A2" ).Value Range(Cells(4, 1), Cells(nblig + 4, 14)).Select 'Remarque : Cells(4, 1) correspond à la cellule A4 Tu aurais essayé de comprendre le code que je t'avais donné dans mes premiers exemples, tu y serais arrivé tout seul A+ |
c'est bon, j'avais réussi!! merci pour votre aide
autre question maintenant :
Comment je peux faire pour dire à une macro d'écrire cette formule dans une case ?
Code :
|
j'ai essayé comme ca, mais ca marche pas... à cause des 3 guillemets qui se suivent je pense... :
Code :
|
?...
Marsh Posté le 05-07-2002 à 11:27:41
double le " :
strtoto=""""
strtoto contiendra "
Mais ton code sera peu lisible...
Marsh Posté le 05-07-2002 à 11:33:10
JPA a écrit a écrit : double le " : strtoto="""" strtoto contiendra " Mais ton code sera peu lisible... |
pas capté grand chose...
T'arrive à m'écrire ce que je dois mettre si je veux qu'une macro dise à excel d'écrire la formule suivante dans une cellule :
=SI(5>3;"C'est faux";"" )
merci d'avance!
Marsh Posté le 05-07-2002 à 12:01:52
En enregistrant la macro et en tapant la formule dans la cellule on obtient :
Range("B5" ).Select
ActiveCell.FormulaR1C1 = "=IF(5>3,""c'est faux"","""" )"
A+
Marsh Posté le 05-07-2002 à 13:04:17
JPA a écrit a écrit : En enregistrant la macro et en tapant la formule dans la cellule on obtient : Range("B5" ).Select ActiveCell.FormulaR1C1 = "=IF(5>3,""c'est faux"","""" )" A+ |
j'vais teste! merci beaucoup pour ton aide!!!!!
Marsh Posté le 05-07-2002 à 14:19:07
JPA a écrit a écrit : En enregistrant la macro et en tapant la formule dans la cellule on obtient : Range("B5" ).Select ActiveCell.FormulaR1C1 = "=IF(5>3,""c'est faux"","""" )" A+ |
j'voulais encore te demander :
- C'est possible de contrôler ce que les gens saisissent dans les champs? (je m'explique --> j'aimerais pouvoir afficher un message d'erreur si ce que la personne a saisi n'est pas un nombre par exemple...)
- C'est possible de vérifier si une feuille existe déjà ? (je m'explique --> l'utilisateur de mon application peut créer des feuilles (à l'aide d'une macro donc...) mais j'aimerais pouvoir contrôler si la feuille qu'il veut créer n'existe pas déjà.
Merci d'avance!
Marsh Posté le 05-07-2002 à 14:32:50
je sais que c'est possible, mais je ne l'ai jamais fait.
Donc -> retour au manuel et à l'abominable aide en ligne d'Excel.
désolé
Marsh Posté le 05-07-2002 à 15:40:45
JPA a écrit a écrit : je sais que c'est possible, mais je ne l'ai jamais fait. Donc -> retour au manuel et à l'abominable aide en ligne d'Excel. désolé |
OK! j'vais essayer de trouver
En tout cas merci beaucoup pour ton aide très précieuse!!!!!
Marsh Posté le 04-07-2002 à 11:00:11
avec une variable comme référence...
vous avez compris?...
Message édité par le_duc le 04-07-2002 à 11:00:51