vba copier coller tableau a la suite

serge.savi

XLDnaute Nouveau
Bonjour

Sur le fichier i joint apparaît une matrice sous forme de tableau qui représente les codes emballages d'un site , chaque nouvelle semaine , je copie-colle le tableau vide a la ligne

Exemple sur ce fichier , pour la semaine 9 , je devrais copier et coller le tableau a partir de la ligne 32 , et modifier le numéro de semaine et effacer le contenu uniquement des colonnes verifiées et saisies

N y a t-il pas une solution qui permettrais avec un bouton de copier coller le tableau a la ligne en modifiant automatiquement le numéro de semaine
le tableau part de la colonne a la colonne BD , ligne 4 a 31

S'il y avait qu un tableau cela ne serait si contraignant mais le fichier comporte 10 onglets

Si vous pouviez m aider a me créer ce code , je le reproduirais sur les autres onglets
 

Paf

XLDnaute Barbatruc
Re : vba copier coller tableau a la suite

Bonjour serge.savi et bonjour gosselien

à tester

Code:
Sub DuplicTablo()
 Dim DerLig As Integer, MonTab, i As Integer

 DerLig = Worksheets("Rumilly").Range("A" & Rows.Count).End(xlUp).Row
 MonTab = Worksheets("Rumilly").Range("A4:BD" & DerLig)

 For i = LBound(MonTab) To UBound(MonTab)
    MonTab(i, 2) = MonTab(i, 2) + 1
 Next

 Worksheets("Rumilly").Range("A" & DerLig + 1).Resize(UBound(MonTab, 1), UBound(MonTab, 2)) = MonTab
End Sub

dommage qu'on ne sache rien sur les feuilles , on aurait pu faire une boucle pour enchainer le traitement sur les autres feuilles

A+
 

serge.savi

XLDnaute Nouveau
Re : vba copier coller tableau a la suite

super et encore merci

peux t on recopier les formules sur les colonnes restantes et surtout garder le format

colonnes ou apparaissent
Erreur (nbr);Erreur (%) puis sur les colonne Vérifié & Saisi

merci sincèrement pour votre coup de main , c'est geant....
 

Paf

XLDnaute Barbatruc
Re : vba copier coller tableau a la suite

Re

pratiquement sortie de l'enregistreur de macro:

Code:
Sub DuplicTablo()
 Dim DerLig As Integer, MonTab, i As Integer

 DerLig = Worksheets("Rumilly").Range("A" & Rows.Count).End(xlUp).Row

 Worksheets("Rumilly").Range("A4:BD" & DerLig).Copy Worksheets("Rumilly").Range("A" & DerLig + 1)
 Worksheets("Rumilly").Range("B" & DerLig + 1 & ":B" & (DerLig * 2 - 3)) = Worksheets("Rumilly").Range("B" & DerLig).Value + 1
End Sub

A+
 

serge.savi

XLDnaute Nouveau
Re : vba copier coller tableau a la suite

Bonjour

c 'est genial, un grand merci

maintenant , il faut que vous m aidiez a recopier cette macro sur les autres onglets

Voici comment je m y suis pris
5 onglets
St_Just
Mulh_Sec
Mulh_Frais
St_Vit
Rumilly ( fait)
je vais sur visual Basic , c est la ou pêche , faut il que j ouvre un nouveau module en faisant insertion module ?
je l ai fait , j'ai renommé les données presentes sur la macro ," Rumilly"par l intitulé de l onglet cela fonctionne mais uniquement sur l onglet prénommé

je suis novice vous l avez certainement remarqué
 

Paf

XLDnaute Barbatruc
Re : vba copier coller tableau a la suite

Re

Une seule macro pour l'ensemble des Feuilles . Ne foctionne correctement uniquement si les données de toutes les feuilles commencent en ligne 4

Code:
Sub DuplicTablo()
 Dim DerLig As Integer, MonTab, i As Integer, MaFeuil
 MaFeuil= Array("St_Just", "Mulh_Sec", "Mulh_Frais", "St_Vit", "Rumilly")

 For i = LBound(MaFeuil) To UBound(MaFeuil)
    DerLig = Worksheets(MaFeuil(i)).Range("A" & Rows.Count).End(xlUp).Row

    Worksheets(MaFeuil(i)).Range("A4:BD" & DerLig).Copy Worksheets(MaFeuil(i)).Range("A" & DerLig + 1)
    Worksheets(MaFeuil(i)).Range("B" & DerLig + 1 & ":B" & (DerLig * 2 - 3)) = Worksheets(MaFeuil(i)).Range("B" & DerLig).Value + 1
 Next

End Sub

A+
 

serge.savi

XLDnaute Nouveau
Re : vba copier coller tableau a la suite

Bonjour
J ai remis le nom des onglets dans l ordre mais un message m informe d un dépassement de capacité

en conséquence la macro recopie le format jusqu a mulhouse frais !!!
ci joint le code que j ai affecté ,

Sub DuplicTablo()
Dim DerLig As Integer, MonTab, i As Integer, MaFeuil
MaFeuil = Array("Rumilly", "Mulh_Sec", "Mulh_Frais", "St_Just", "St_Vit")

For i = LBound(MaFeuil) To UBound(MaFeuil)
DerLig = Worksheets(MaFeuil(i)).Range("A" & Rows.Count).End(xlUp).Row

Worksheets(MaFeuil(i)).Range("A4:BD" & DerLig).Copy Worksheets(MaFeuil(i)).Range("A" & DerLig + 1)
Worksheets(MaFeuil(i)).Range("B" & DerLig + 1 & ":B" & (DerLig * 2 - 3)) = Worksheets(MaFeuil(i)).Range("B" & DerLig).Value + 1
Next

End Sub
 

Paf

XLDnaute Barbatruc
Re : vba copier coller tableau a la suite

Re,

combien y a t il de lignes sur le plus grand tableau à copier ? plus de 30 000 ?

EDIT : rectification => plus de 15 000 lignes ?

Si c'est cela modifier
Dim DerLig As Integer, MonTab, i As Integer, MaFeuil
en
Dim DerLig As Long, MonTab, i As Integer, MaFeuil

Sinon, je ne vois pas

A+
 
Dernière édition:

Discussions similaires

Réponses
15
Affichages
508

Statistiques des forums

Discussions
312 244
Messages
2 086 558
Membres
103 247
dernier inscrit
bottxok