Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copie et incrémentation VB

Mauro

XLDnaute Nouveau
Bonjour à tous.

Je suis en train d'essayer de fabriquer une fonction VB pour copier un onglet avec incrémentation une ligne mais je n'y arrive pas.

Je m'explique
j'ai deux feuilles: la première avec 1000 lignes de données / une deuxième feuille qui reprend une seul ligne (par exemple la A6-DT6) de la première feuille


Aussi je veux créer une fonction Macro qui copie la feuille 2, tout en changeant la ligne (donc si j'active ma fonction macro: ça copierait ma feuille 2, et la ligne exploité deviendrait A7-DT7 de la feuille 1)


Pour le moment, j'ai ce morceau de code:

Sub Copie()
Worksheets("CH").Copy After:=Sheets(Worksheets.Count)
Set MySheet = ActiveSheet
With MySheet
.Name = Worksheets("CH").Range("A1")
End With
End Sub


Merci Infiniment
 

youky(BJ)

XLDnaute Barbatruc
Bienvenu au club Mauro,
Tu es tombé sur un bon forum.....

Sub Copie()
Worksheets("CH").Copy After:=Sheets(Worksheets.Count)
Set MySheet = ActiveSheet
With MySheet
.Name = Worksheets("CH").Range("A1")
.[A7T7].value=sheets("CH").[A6T6].value
'je peux me tromper entre 6 et 7
End With
End Sub

Bruno
les trucs à la ... sont des double-points
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Mauro et bienvenue sur XLD

EDIT: bonjour Bruno

Place le code suivant dans un module standart

VB:
Option Explicit

Sub Copie_Donnees()
Dim lig As Long, i as Long, PlageSource As Range, PlageDest As Range

  lig = Feuil1.Cells(Rows.Count, "A").End(xlUp).Row + 1

  For i = 7 To lig
  Set PlageSource = Feuil2.Range(Feuil2.Cells(i, "A"), Feuil2.Cells(i, "I"))
  Set PlageDest = Feuil1.Range(Feuil1.Cells(i, "A"), Feuil1.Cells(i, "I"))
  PlageDest.Value = PlageSource.Value
  If IsEmpty(Feuil2.Cells(i, "A")) Then
  MsgBox "Il n'y a plus de données à copier.", , "FIN DE COPIE"
  End If
  Next i
End Sub
 
Dernière édition:

Mauro

XLDnaute Nouveau
Coucou youky(BJ)!
tu as exactement compris ce que je cherchais!
Merci BEEEAUCOUP:!!!!
Cependant il faut que quand je refasse marcher la macro sur la nouvelle feuille, ça passe de la ligne 7 à la 8 et ainsi de suite

Lone-wolf, je n'arrive pas à faire marcher ta macro :/

Merci pour votre réactivité, c'est impressionnant!!
 

youky(BJ)

XLDnaute Barbatruc
Comment puis-je trouver la bonne ligne à copier ????
Quel détail fait la différence pour que ce soit la bonne ligne à recopier 1 ligne plus bas sur le nouvel onglet
Un petit exemple des données ou copie écran éclairerait bien ma lanterne.
Bruno
 

youky(BJ)

XLDnaute Barbatruc
c'est pas parlant du tout.
Pas de quoi distinguer la ligne à copier !
Peut être avec les noms des onglets si ils sont toujours dans le même ordre
Un fichier avec le nom des onglets et qlqs données serait le bienvenu
Bruno
 

Mauro

XLDnaute Nouveau
Merci énormément pour votre aide.
haha oui c’est dure de faire quelques choses de compressible...

Hum alors le 1er onglet s’appelle : données
Et il y a un seul onglet ensuite (l’onglet modèle que je cherche à copier et a incrémenter 120 fois)

Donc au final j’aurais 121 onglets


les lignes a exploiter dans l'onglet donnée sont de A à DT
qui se retrouve en O à EH dans l'onglet modèle


Merci beaucoup
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…