Problématique à création d'une variable ligne et colonne dans un range
Bonjour à toutes et à tous,
Après avoir parcouru ce forum pour chaque morceau de code que j'ai réalisé, je tiens à vous remercier grandement pour la richesse de son contenu !
Je rencontre un problème dans l'élaboration d'une procédure, et pour une fois, je n'arrive pas à le contourner.
En essayant d'être clair :
- Sous Office 365 (excel 2016)
- Je souhaite copier des cellules d'une feuille 1 à une feuille 2 (même classeur) en fonction de la valeur d'une cellule sur la même ligne (type index equiv en formule)
- Je suis en Option Explicit et en Option Compare Text
Pour cela, j'ai réalisé une double boucle
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Dim dernligne As Long, i As Long, j1 As Long, j2 As Long, dernligne1 As Long, dernligne2 As Long, derncolonne As Long, d
dernligne1 = Worksheets("FiltreBis").Range("C" & Rows.Count).End(xlUp).Row
derncolonne = Sheets("Indicateurs").Range("W2").End(xlToLeft).Column + 1
For j1 = 2 To dernligne1
For j2 = 2 To 26
If Worksheets("FiltreBis").Range("C" & j1).Value = "" Then GoTo FillBlank
If Worksheets("FiltreBis").Range("C" & j1) = Worksheets("Indicateurs").Range("I" & j2) Then
Worksheets("Indicateurs").Range(derncolonne & j2) = Worksheets("FiltreBis").Range("E" & j1)
End If
Next
Next |
Le problème apparaît sur la ligne
Code:
1 2
|
Worksheets("Indicateurs").Range(derncolonne & j2) = Worksheets("FiltreBis").Range("E" & j1) |
Et plus particulièrement sur la variable : derncolonne.
En effet :
- en remplaçant la variable par la lettre de la colonne ("M" en l’occurrence), la procédure tourne sans coup férir,
- en remplaçant la variable par son résultat (13), la procédure s'arrête sur une "erreur définie par l'application ou par l'objet" (1004),
- en tentant de contourner le problème via Select Case, afin de transformer les chiffre en lettre (why not ?...) , retour à l'erreur 1004 (code ci-après au cas où il serait gangrèné).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Select Case (derncolonne)
Case derncolonne = 11
d = "K"
Case derncolonne = 12
d = "L"
Case derncolonne = 13
d = "M"
Case derncolonne = 14
d = "N"
Case derncolonne = 15
d = "O"
Case derncolonne = 16
d = "P"
Case derncolonne = 17
d = "Q"
Case derncolonne = 18
d = "R"
Case derncolonne = 19
d = "S"
Case derncolonne = 20
d = "T"
Case derncolonne = 21
d = "U"
Case derncolonne = 22
d = "V"
End Select |
Est-ce la variable derncolonne qui est mal dimensionnée, mal formulée. Ou est-ce mon Range qui est mal assorti aux valeurs que je veux lui donné (colonne vide, ligne en cours)
Ainsi, je viens quémander une aide et surtout des conseils :)
Dans l'espoir d'avoir réussi à placer correctement les balises, je vous souhaite une bonne soirée !