cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011
-
4 févr. 2011 à 17:01
rv83toulon
Messages postés68Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention25 avril 2013
-
8 févr. 2011 à 14:02
Bonjour à tous,
je souhaite récupérer dans une variable le numero du mois d'une cellule date ("G9") dans mon cas.
j'ai essayé ça, mais bien sur, ça passe pas !!
mavariable = Range("G9").Month(dates) + 1
cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011 4 févr. 2011 à 22:11
Bon finalement j'ai un autre souci.
La valeur récupérée est le N° de colonne et j'ai une valeur amont qui me donne le n° de la ligne.
Mon code passe bien sauf au moment ou je remplace
Range("K" & j).Value
par
Range(c & j).Value ==> Range("10" & "3").value
Ma valeur c et j sont bien reconnu (10 & 3) donc l'adresse cellule J3 mais le code ne passe pas.
Je bloque et ne comprends pourquoi le fait de remplacer "K" par c empêche l'exécution du code
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 4 févr. 2011 à 23:47
Re
Parce que l'adressage dans un range ne marche pas comme ça.
Range reconnait différent formats, mais pas "103". "10:3" éventuellement, et encore.
Soit tu convertis "10" en J (avec Chr et un décalage de 64, 65 désignant le code ascii du A maj), soit tu choisis une instruction plus adéquat comme Cells où tu peux désigner la cellule par ces chiffres de colonne et de ligne.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_zeps2
Messages postés61Date d'inscriptionvendredi 9 novembre 2007StatutMembreDernière intervention28 octobre 2011 5 févr. 2011 à 09:40
Merci Jack pour l'explication.
Merci Renfield, je ne peux pas passer directement par les n° de ligne et colonne car se sont des variables.
Par contre jack, en mettant cells le code passe mais l'adresse n'est pas reconnu, car aucun remplissage ds les cellules correspondantes.
> cells(c, j)
Et je ne suis pas assez bon en VBA pour assimiler directement ton explication..."avec Chr et un décalage de 64, 65 désignant le code ascii du A maj)" je manie pas ...
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 févr. 2011 à 17:48
Tu as les mots clé : Chr --> Regarde dans l'aide comment ça marche et fais des essais comme, par exemple :
Dans la fenêtre de debug (Ctrl-G), tape la commande :
? Chr(64 + 10)
et la fonction renvoie la chaine "J"
Donc, si tu dois utiliser définir des adressages comme J402, il te suffit de générer le J avec la fonction Chr et d'y concaténer le numéro de ligne.
rv83toulon
Messages postés68Date d'inscriptionmercredi 2 mars 2011StatutMembreDernière intervention25 avril 2013 8 févr. 2011 à 14:02
Bonjour,
excusez moi d'arriver comme ça mais il me semble que cells (c, j) ou c 10 et j3 est égale à la cellule "C10".
Or il me semble qu'il cherche la cellule "J3", non?
donc se serait plutôt: cells (j,c)
pour rappel cells se définit comme ceci :
cells (ligne,colonne).
Cordialement.
@+