testostezor 金牛座 | Bon alors quand j'executé la Sub en écrivant clairement en dur le nom des onglets ça marche, mais en mode Sub appelée avec 2 arguments ça ne fonctionne plus. Si vous pouvez m'aider :
Code :
- Sub Boucle_V01(arg1 As String, arg2 As String)
- Dim i As Integer
- 'Compteur de lignes
- i = 5
-
- Dim j As Integer
- 'Compteur de colonnes
- j = 1
-
- ' Boucle pour compter les lignes :
- Do
- i = i + 1
- Loop While Cells(i, 1) <> ""
-
- ' Boucle pour compter les colonnes :
- Do
- j = j + 1
- Loop While Cells(5, j) <> ""
-
- Dim a As String
- ' Variable pour stocker le nom de la colonne . Ex : Index etc..
- Dim d As Integer
- ' Coordonnée de ligne
- d = 5
- Dim e As Integer
- ' Coordonnée de colonne
- e = 1
-
- ' Récupération du nom de la cellule dans l'onglet cible
- Do
- Sheets("arg2" ).Select
- Cells(d, e).Select
- a = Selection
- ' MsgBox "Nom de la cellule " & a
-
- Dim b As Integer
- ' Variable de coordonnée de la colonne qui contient le même nom dans l'onglet source
- b = 0
- Do
- b = b + 1
- Sheets("arg1" ).Select
- Cells(5, b).Select
- Loop While Selection <> a
-
- ' Récupération du contenu complet (toutes les lignes) de la colonne qui porte le même nom dans l'onglet source
- Sheets("arg1" ).Select
- Range(Cells(6, b), Cells(i, b)).Select
- Selection.Copy
-
- Sheets("arg2" ).Select
- Range(Cells(d + 1, e), Cells(i, e)).Select
- Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
- e = e + 1
- Loop While e <> j
-
- MsgBox "Traitement termine"
-
- End Sub
|
Mon sub d'appel dans un module différent :
Code :
- Sub Boucle_V03()
- Call Boucle_V01("EQUITY", "Feuil2" )
-
- End Sub
|
Et enfin le message d'erreur est :
Code :
- Erreur d'execution '9'
- L'indice n'appartient pas à la selection
|
Et il me surligne en jaune la ligne #31.
Merci de votre aide je ne vois pas
Sachant que la Sub qui fonctionne (sans être "dynamique" ) est celle la :
Code :
- Sub Boucle_V04()
- Dim i As Integer
- 'Compteur de lignes
- i = 5
-
- Dim j As Integer
- 'Compteur de colonnes
- j = 1
-
- ' Boucle pour compter les lignes :
- Do
- i = i + 1
- Loop While Cells(i, 1) <> ""
-
- ' Boucle pour compter les colonnes :
- Do
- j = j + 1
- Loop While Cells(5, j) <> ""
-
- Dim a As String
- ' Variable pour stocker le nom de la colonne . Ex : Index etc..
- Dim d As Integer
- ' Coordonnée de ligne
- d = 5
- Dim e As Integer
- ' Coordonnée de colonne
- e = 1
-
- ' Récupération du nom de la cellule dans l'onglet cible
- Do
- Sheets("Feuil2" ).Select
- Cells(d, e).Select
- a = Selection
- ' MsgBox "Nom de la cellule " & a
-
- Dim b As Integer
- ' Variable de coordonnée de la colonne qui contient le même nom dans l'onglet source
- b = 0
- Do
- b = b + 1
- Sheets("EQUITY" ).Select
- Cells(5, b).Select
- Loop While Selection <> a
-
- ' Récupération du contenu complet (toutes les lignes) de la colonne qui porte le même nom dans l'onglet source
- Sheets("EQUITY" ).Select
- Range(Cells(6, b), Cells(i, b)).Select
- Selection.Copy
-
- Sheets("Feuil2" ).Select
- Range(Cells(d + 1, e), Cells(i, e)).Select
- Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
- e = e + 1
- Loop While e <> j
-
- MsgBox "Traitement termine"
-
- End Sub
|
Message édité par testostezor le 30-12-2010 à 11:20:57
|