Fonction numero du mois

Signaler
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011
-
rv83toulon
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
25 avril 2013
-
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

QQ à une idée ?

merci à la communauté...

12 réponses

Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Bonjour ,

Dim mavariable As Integer
mavariable = Month(Range("G9").Text)


Dédénet2
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
month(...)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Salut

Qu'y a t-il dans G9 ?
Un format date valide ?
Alors, faut mettre tout dans l'ordre :
mavariable = Month(Range("G9").Value) + 1

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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Rafale de réponses !!
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011

Bien sur....
J'avais pas tilté que (date) fallait que je le remplace par la valeur que je souhaitais.
Humilité, humilité....

merci à tous, j'va corriger mon code !

merci à tous
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011

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

1 idée ????
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
ne pas passer par une String, utiliser les chiffres tels quels :

Cells(10,3)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011

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 ...

Un p'tit exemple ?

Zeps ;-))
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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.
Messages postés
61
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
28 octobre 2011

merci Jack, je m'y attelle....

zeps2
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
25 avril 2013

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.
@+