Problème avec une fonction à deux paramètres

Elvire

XLDnaute Nouveau
Bonjour
Je voudrais créer une fonction qui prend deux paramètres en entrée une case et une colonne.
Car je veut remplir un tableau dans la feuille 1 à partir de différentes cases des feuilles suivantes et il me parait un peu lourd de recopier à chaque fois le code en changeant la colonne d'arrivée et la case de départ.
Le problème c'est qu'à la compilation la ligne
Sheets(1).Range("colonne" & derligne).Value = Range("case1").Value
ne passe pas.
Alors qu'avant en mettant
Sheets(1).Range("B" & derligne).Value = Range("B2").Value
tout allez bien.

Si quelq'un peut m'aider ce serai génial.



Sub tableau(case1, colonne)
'
' tableau Macro
' Macro enregistrée le 04/02/2010 par T0115286
'
derligne = 2
For i = 2 To Sheets.Count
Sheets(i).Select
Sheets(1).Range("colonne" & derligne).Value = Range("case1").Value
derligne = derligne + 1
Next
End Sub

Sub main()
tableau B2, B
'
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Problème avec une fonction à deux paramètres

bonjour Elvire

A tester:

Code:
Sheets(1).Range(colonne & derligne).Value = Range("case1").Value
 
au lieu de
 

Sheets(1).Range([COLOR=red]"[/COLOR]colonne[COLOR=red]" [/COLOR]& derligne).Value = Range("case1").Value
 
C

Compte Supprimé 979

Guest
Re : Problème avec une fonction à deux paramètres

Bonjour Elvire,

Essaye simplement en enlevant les guillemets
Code:
Range(case1).Value
Case1 est une variable, donc ne doit pas être entre guillemets sinon, cela devient du texte

A+

Edit : oups, bonjour PierreJean, moi j'avais vu pour "Case" ;)
 

pierrejean

XLDnaute Barbatruc
Re : Problème avec une fonction à deux paramètres

Re

Dans un 1er temps j'ai cru que case1 etait un nom de range (Insertion >nom)
Il s'agit bien comme l'a vu Bruno d'une variable
Voici quelque chose qui tourne
Mais quand au resultat !!

Code:
Sub tableau(case1, colonne)
'
' tableau Macro
' Macro enregistrée le 04/02/2010 par T0115286
'
derligne = 2
For i = 2 To Sheets.Count
Sheets(i).Select
Sheets(1).Range(colonne & derligne).Value = Range(case1).Value
derligne = derligne + 1
Next
End Sub
Sub main()
tableau "B2", "C"
'
End Sub
 

Discussions similaires

Réponses
4
Affichages
231
Réponses
6
Affichages
281

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 822
dernier inscrit
kader55