Extraire données d'un onglet vers un autre problème variable
Bonjour,
Mon problème est en grand classique, enfin je suppose, mais je ne parviens pas à trouver une solution répondant parfaitement à mon besoin.
Mon besoin :
L'onglet "source" de mon fichier est celui avec lequel les utilisateurs vont interagir. Le but de celui-ci est d'indiquer les actions à réaliser pour différents produits etc.. en fonction du jour de la semaine et ceux pour chaque semaine de l'année.
Dans l'onglet "extraction données" j'ai un bouton qui a pour objectif de récupérer les donnés de chaque colonne jusqu’à la ligne 25 en fonction du nom de colonne écrit dans la ligne 1.
Mon problème est que dans mon code VBA je ne sais pas comment déclarer autant de variable soit 365 X2 besoin d'une colonne pour le matin et l'après midi de chaque jour. Je m'étais résolue à le faire manuellement (mauvaise idée) mais finalement je suis bloqué sur le nbr de variable possible à déclarer (bloqué à "essai 84")
Le fichier est donc déjà fonctionnel mais pas pour une année complète... Je suppose qu'il y a plein d'optimisation possible etc donc n’hésitez pas.
Le troisième onglet me permet uniquement de récupérer les données extraite et de faire de la mise en forme pour présentation...
Cordialement
Bonjour,
utilise le caractère de continuation d'une instruction pour passer à la ligne suivante.
Sub test()
Dim Col As Integer, Plage As Range, Cols As Variant, Ctr As Byte, Cold As Integer, TodayDate, i
Cols = Array("Nom client", "Essai 1", "Essai 2", "Essai 3", "Essai 4", "Essai 5", "Essai 6", "Essai 7", "Essai 8", "Essai 9", "Essai 10", _
"Essai 11", "Essai 12", "Essai 13", "Essai 14", "Essai 15", "Essai 16", "Essai 17", "Essai 18", "Essai 19", "Essai 20", _
"Essai 21", "Essai 22", "Essai 23", "Essai 24", "Essai 25", "Essai 26", "Essai 27", "Essai 28", "Essai 29", "Essai 30", _
"Essai 31", "Essai 32", "Essai 33", "Essai 34", "Essai 35", "Essai 36", "Essai 37", "Essai 38", "Essai 39", "Essai 40", _
"Essai 41", "Essai 42", "Essai 43", "Essai 44", "Essai 45", "Essai 46", "Essai 47", "Essai 48", "Essai 49", "Essai 50", _
"Essai 51", "Essai 52", "Essai 53", "Essai 54", "Essai 55", "Essai 56", "Essai 57", "Essai 58", "Essai 59", "Essai 60", _
"Essai 61", "Essai 62", "Essai 63", "Essai 64", "Essai 65", "Essai 66", "Essai 67", "Essai 68", "Essai 69", "Essai 70", _
"Essai 71", "Essai 72", "Essai 73", "Essai 74", "Essai 75", "Essai 76", "Essai 77", "Essai 78", "Essai 79", "Essai 80", _
"Essai 81", "Essai 82", "Essai 83", "Essai 84", "Essai 85", "Essai 86", "Essai 87", "Essai 88", "Essai 89", "Essai 90", _
"Essai 91", "Essai 92", "Essai 93", "Essai 94", "Essai 95", "Essai 96", "Essai 97", "Essai 98", "Essai 99", "Essai 100")
With Sheets("Source")
For i = 0 To UBound(Cols)
Col = Application.Match(Cols(i), .[1:1], 0)
Cold = Application.Match(Cols(i), Sheets("Extraction données").[3:3], 0)
Set Plage = .Range(.Cells(2, Col), .Cells(.Rows.Count, Col).End(xlUp))
Plage.Copy
Sheets("Extraction données").Cells(4, Cold).PasteSpecial xlPasteValues
Next i
End With
End SubCeci dit, il n'est peut-être pas nécessaire de nommer toutes les colonnes dans ta macro. La macro pourrait s'en charger ... Mais je n'ai pas tout à fait compris ce que tu essaies de faire.