OVH Cloud OVH Cloud

pointer des feuilles ?

3 réponses
Avatar
Benco
Bonjour,

Je voudrais pouvoir jongler entre un onglet initial et d'autres qui
servirait de destination..

Idéalement, je voudrais
- donner dans la procédure le nom des onglets des onglets de destination
(faire une liste) -> mais je ne sais pas faire en VBA
- faire une boucle qui va copier sur chacun des onglets de la liste les
mêmes colonnes de l'onglet initial (avec la même colonne de destination)->
je ne sais pas faire

Voila donc ce que je ne sais pas faire et qui serait "logique"..

Donc je me débrouille avec les connaissance du bord, et j'ai simplifié mon
logigramme en lancant la macro "manuellement" feuille par feuille.
Maintenant je bloque la définition des noms de feuilles.

Dim init As Worksheets
Dim dest As Worksheets

init = Sheets("2101")-> pb de compil
dest = active.Sheet-> pb de compil

Sheets(" & init & ").Select
->Action1 = copie valeur
Sheets(" & dest & ").Select
->Action2 = collage valeur


Est ce que ma déclaration n'est pas bonne ? ou ma manière remplir "init" et
"dest" ?

Merci de votre aide

3 réponses

Avatar
AV
Sous réserve de bonne compréhension :
Copier la plage A1:E1 de "Feuil1" en A1:E1 de chacune des feuilles du tableau
(lesFeuilles) :

Sub zzz()
lesFeuilles = Array("Feuil2", "Feuil3", "Feuil4")
For Each F In lesFeuilles
Sheets(F).[A1:E1] = [Feuil1!A1:E1].Value
Next
End Sub

AV
Avatar
Benco
Merci la réponse est la bonne, même si la question semblait floue
et pourtant j'avais pris le temps de poser la bonne question...

Merci encore


"AV" a écrit dans le message news:
e4#
Sous réserve de bonne compréhension :
Copier la plage A1:E1 de "Feuil1" en A1:E1 de chacune des feuilles du
tableau

(lesFeuilles) :

Sub zzz()
lesFeuilles = Array("Feuil2", "Feuil3", "Feuil4")
For Each F In lesFeuilles
Sheets(F).[A1:E1] = [Feuil1!A1:E1].Value
Next
End Sub

AV




Avatar
Benco
J'ai poursuivi mon apprentissage notamment sur les listes,
Si je comprends bien on est pas obligé de déclarer "proprement" que les
arguments de la liste déclarée dans array seront "appelés" par la boucle
For/Next...
Ici on donne le nom "F" et le simple fait de dire "in" + Array, cela définit
la manière d'accéder aux arguments ?
Remarquez qu'on peut pas faire plus simple comme déclaration explicite...

Merci encore, j'ajoute Array et For/Next à ma liste des fonctions VBA
maitrisables simplement.


"Benco" a écrit dans le message news:

Merci la réponse est la bonne, même si la question semblait floue
et pourtant j'avais pris le temps de poser la bonne question...

Merci encore


"AV" a écrit dans le message news:
e4#
Sous réserve de bonne compréhension :
Copier la plage A1:E1 de "Feuil1" en A1:E1 de chacune des feuilles du
tableau

(lesFeuilles) :

Sub zzz()
lesFeuilles = Array("Feuil2", "Feuil3", "Feuil4")
For Each F In lesFeuilles
Sheets(F).[A1:E1] = [Feuil1!A1:E1].Value
Next
End Sub

AV