Copie d'une feuille sur n (variable) feuilles une a une jusqu'a n

Pomylus

XLDnaute Nouveau
Bonjour,

Je débute en vba et je suis a la recherche d'une code me permettant de copier les donnees d'une feuille sur un nombre variable d'autres feuilles.

Pour être un peu plus explicite, je voudrais copier les données (B3:B89) sur ma feuille2 en (C3:C89) et sur ma feuille3 en (C3:C89) etc... selon un nombre de feuilles variable.
Or dans mon cas, cela recopie uniquement sur la feuille pour laquelle j'ai indique la variable.

J'ai déclaré

Sub macro()
Dim i As String, ficher As String

i = InputBox("Nombre de feuilles", "Titre")
If i <> "" Then
End If

Range("B3:B89").Select
Selection.Copy
Sheets("Sheet" & i).Select
Range("B3:B89").Select
ActiveSheet.Paste

End Sub

Je pensais utiliser
For Sheet = 0 To i

mais je ne vois pas comment faire.

Quelqu'un aurait il une idée ?

Pomylus
 

Efgé

XLDnaute Barbatruc
Re : Copie d'une feuille sur n (variable) feuilles une a une jusqu'a n

Bonjour Pomylus
Il est rarement nécessaire de devoir sélectionner.
Une proposition:
VB:
Sub test()
Dim CetteFeuille As Worksheet, F As Worksheet
Set CetteFeuille = Sheets("Modele") 'Adapter le nom de la feuille de départ
For Each F In Worksheets
    If F.Name <> CetteFeuille.Name Then
        CetteFeuille.Range("B3:B89").Copy F.Range("B3:B89")
    End If
Next F
End Sub
Cordialement

EDIT @ Salut JCGL Près à l'abordage :D
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Copie d'une feuille sur n (variable) feuilles une a une jusqu'a n

Bonjour à tous,

Peux-tu essayer :

VB:
Option Explicit

Sub macro()
Dim i&, X&
i = InputBox("Nombre de feuilles", "Titre")
For X = 2 To i
If i > 0 Then
Range("B3:B89").Copy Sheets(X + 1).Range("B3:B89")
End If
Next X
End Sub

A+ à tous

Edition : Salut Fred... Sur le pont ?
Edition 2 : Modification du code...
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copie d'une feuille sur n (variable) feuilles une a une jusqu'a n

Bonjour le fil, bonjour le forum,

Comme c'était pas trop clair au niveau de la feuille de départ j'ai rajouté une boîte d'entrée :
Code:
Sub macro()
Dim n As Variant, ind As Variant, i As Integer

n = Application.InputBox("Nombre de feuilles", "NOMBRE", Type:=1)
If n = False Then Exit Sub
ind = Application.InputBox("Index de la première feuille", "INDEX", Type:=1)
If ind = False Then Exit Sub
For i = ind To ind + n - 1
    On Error GoTo fin
    Sheets("Feuil2").Range("B3:B89").Copy Sheets(i).Range("C3")
Next i
fin:
End Sub
 

Pomylus

XLDnaute Nouveau
Re : Copie d'une feuille sur n (variable) feuilles une a une jusqu'a n

Re-bonjour,

Merci beaucoup a tous.
La solution de Efge me faisait une copie mais sur toutes les feuilles.
La solution de JCGL fonctionne bien.
Suite a l'intervention de Robert, je trouve ta remarque intéressante sur l'index et cela fonctionne - encore mieux que dans mon cahier des charges :)

Un grand merci a vous tous

Pomylus
 

Discussions similaires

Statistiques des forums

Discussions
312 510
Messages
2 089 147
Membres
104 050
dernier inscrit
Pepito93100