Vba excel variables

Résolu
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011 - 5 mai 2008 à 10:17
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 - 5 mai 2008 à 22:40
Bonjour,

J'ai un problème pour déclarer une variable.
voici mon code:

 Dim first_row As String
 Dim last_row As String
 Dim nbr_lignes_led As String

[...]
first_row = ActiveCell.Address
[...]
last_row = ActiveCell.Address
[...]
nbr_lignes = last_row - first_row + 1
[...]

les 2 premières variables ne pose pas de problème mais sur la dernière j'ai une erreur "incompatibilité de type"
J'ai essayer en changeant le type de variable pour "nbr_lignes" (long, currency, variant) mais rien n'y fait :'(

Es-ce que quelqu'un aurait une idée?
Merci

8 réponses

jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
5 mai 2008 à 11:48
Ben moi, je l'avais vu et corrigée, par contre c'est:

lasr_row et firstrow te retournent une String qui contient l'Address, donc de la forme "$A$1"
Tu ne peux donc pas additionner ce genre de texte...

que j'avais po vu! c'est encore pire!

Jimy

Pensez: Réponse acceptée
'**********************************************
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
5 mai 2008 à 10:30
Salut,

Essaye :

Dim nbr_lignes_led As Long

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
5 mai 2008 à 10:30
Salut

Dim nbr_lignes as Integer
nbr_lignes =val( last_row )- val(first_row) + 1

On ne peut pas faire de caculs avec des chaines de caracteres...

Jimy

Pensez: Réponse acceptée
'**********************************************
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
5 mai 2008 à 10:32
Salut,

Normal que tu as une imcompatibilité... Tu fais des opérations sur des chaines de caracteres...
tu veux stocker quoi dedans?

SLB
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
5 mai 2008 à 11:23
Attention aux noms de variables aussi
Dim nbr_lignes_led As String

nbr_lignes = last_row - first_row + 1

lasr_row et firstrow te retournent une String qui contient l'Address, donc de la forme "$A$1"
Tu ne peux donc pas additionner ce genre de texte...
Plutôt que .Address, essaie avec .Row qui te retournera un entier Long. Donc, déclare tes variables As Long comme déjà commenté...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
5 mai 2008 à 11:30
Arfff, je ne l'avais pas vu celle là d'erreur MPI(salut)....

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011
5 mai 2008 à 21:01
Merci à tous pour votre aide.
Je me suis rendu compte tout seul de mon erreur et j'ai changé
[...]
first_row = ActiveCell. row
[...]
last_row = ActiveCell.row
[...]
nbr_lignes = last_row - first_row + 1
[...]

Evidement maintenant tout se passe bien.
Merci encore.

Liro
0
jimy neutron Messages postés 491 Date d'inscription mercredi 1 février 2006 Statut Membre Dernière intervention 18 novembre 2016 1
5 mai 2008 à 22:40
Liro,
Je suis persuadé que tu vas t'en rendre compte tout seul, mais n'oublies pas de clore le post avec 'Reponse acceptée'

Jimy
0
Rejoignez-nous