VBA essai déclaration variable

Bonjour à tous,

Dans mon apprentissage, j'essaye de me familiarisé avec les "Dim"

- Cette macro fonctionne bien :

Sub essai1()
    Range("b1") = "=MATCH(a2,a7:a28,0)+6"
    Range("A" & Range("b1").Value).Select
End Sub

maintenant, je voudrais remplacer le Range("b1") par une variable

Sub essai2()
Dim Nc
    Nc = "=MATCH(a2,a7:a28,0)+6"
    Range("A" & Nc.Value).Select 'erreur 424
End Sub

J'ai essayé un peu tous les As, mais sans résultat !

Pouvez-vous m'aiguiller ?

amicalement

Claude.

Bonjour,

Il faut déclarer les variables par la syntaxe suivante :

Dim Nom_Variable As Type_Variable

Dans ton cas tu peux déclarer le code suivant par exemple :

Dim Nc As Variant

Ou si le code ne commençant pas par "Option Explicite", tu peux ne pas les déclarer par le mot clé Dim. Au contraire, si au début de ton code "Option Explicite" est choisie, tu es obligé de déclarer tes variables avant de les utiliser.

re,

merci Raja, mais il doit y avoir une faute de syntaxe dans la dernière ligne.

toujours erreur 424

Sub essai2()
Dim Nc As Variant
    Nc = "=MATCH(a2,a7:a28,0)+6"
    Range("A" & Nc.Value).Select 'erreur 424
End Sub

Je ne vois pas !!

Claude.

Re,

Excuse-moi. Je n'ai pas fait attention. Essaye le code suivant :

Range("A" & Nc).Select

re,

non, maintenant erreur 1004

voici mon fichier :

https://www.excel-pratique.com/~files/doc/Dim_essai1.xls

merci de m'aider

Claude.

Re,

Essaye le code suivant :

Sub essai2()
Dim Nc As Integer
    Nc = [MATCH(A2,A7:A28,0)] + 6
    Range("A" & Nc).Select
End Sub

Ou bien sans déclaration d'une variable :

Sub essai2()
    Range("A" & [MATCH(a2,a7:a28,0)] + 6).Select
End Sub

PS : Attention s'il n'y a pas le nom qu'on cherche, il va y avoir un bug. Il faut le traiter en amont.

re,

Ok Raja, c'est bon !

Mais j'ai vraiment du mal à comprendre ces déclarations !!

pour tester j'ai même supprimer carrément le Dim et çà marche aussi.

Sub essai2()
    Nc = "A" & [MATCH(a2,a7:a28,0)] + 6
    Range(Nc).Select
End Sub

c'est çà que ne pige pas !

en tout cas merci de ton aide

amicalement

Claude.

re,

j'avais pas vu ton dernier code !

encore mieux :

Range("A" & [MATCH(a2,a7:a28,0)] + 6).Select

- oui, j'ai un contrôle d'erreur (si nom n'existe pas)

encore merci

à+....Claude.

édit: merci à Mytå aussi

Salut le forum

Avec déclaration de variable

Dim Nc As Long
    Nc = WorksheetFunction.Match(Range("A2"), Range("A7:A28"), 0) + 6
    Range("A" & Nc).Select

Mytå

Rechercher des sujets similaires à "vba essai declaration variable"