OVH Cloud OVH Cloud

Pas si simple

4 réponses
Avatar
alain.bazire
Bonsoir a toutes et tous
J'ai un fichier toto dans lequel une feuille 1 est pleine de A1:X65556 je
desire copierla plageA100:X112dans un fichier toto1 en A1. Puis copier
A288:X300 et la coller en toto1 a la ligne 13 etc toujours avec une selection
de 12 lignes et un ecart de 188 jusqu'ala fin de la feuille si la derniere
n'est pas faite je la ferais a la main.Merci de votre aide ho combien
précieuse et sympathique.Amitiées.Alain

4 réponses

Avatar
Nicolas B.
Bonsoir Alain,

J'ai un fichier toto dans lequel une feuille 1 est pleine de
A1:X65556


65536 ?
;-)

je desire copierla plageA100:X112dans un fichier toto1 en A1. Puis
copier A288:X300 et la coller en toto1 a la ligne 13 etc toujours avec
une selection de 12 lignes et un ecart de 188


A100:X112 et A288:X300, ça fait des sélections de 13 lignes ?

En supposant les paquets de 13 lignes (donc le début donne A100:X112
puis A288:X300) :

Sub Copie()
Dim wb As Workbook
Dim N As Integer
Dim i As Integer
Dim wbSource As Workbook
Set wbSource = ThisWorkbook

N = ([A100].End(xlDown).Row - 99) 12 _
- (([A100].End(xlDown).Row - 99) Mod 12 <> 0)

Set wb = Workbooks.Add

With wb.Sheets(1)
For i = 0 To N - 1
wb.Sheets(1).Range("A" & 1 + 26 * i & ":X" & 13 + 26 * i) _
= wbSource.ActiveSheet.Range("A" & 100 + 13 * i _
& ":X" & 112 + 13 * i).Value
wb.Sheets(1).Range("A" & 14 + 26 * i & ":X" & 26 + 26 * i) _
= wbSource.ActiveSheet.Range("A" & 288 + 13 * i _
& ":X" & 300 + 13 * i).Value
Next
End With
End Sub

Pour les dernières lignes n (du classeur), les lignes n + 188 ne
contiennent rien et il y a une alternance de paquets de 13 lignes vides
avec des pleines. Pour arrêter la macro avant, remplace les
([A100].End(xlDown).Row - 99)
par
([A100].End(xlDown).Row - 287).


A+
Nicolas B.

Bonsoir a toutes et tous
J'ai un fichier toto dans lequel une feuille 1 est pleine de A1:X65556 je
desire copierla plageA100:X112dans un fichier toto1 en A1. Puis copier
A288:X300 et la coller en toto1 a la ligne 13 etc toujours avec une selection
de 12 lignes et un ecart de 188 jusqu'ala fin de la feuille si la derniere
n'est pas faite je la ferais a la main.Merci de votre aide ho combien
précieuse et sympathique.Amitiées.Alain


Avatar
alain.bazire
Nico B je te remercie de ton aide je n'ai pas encore testé mais te remercie
de m'avoir si rapidement répondu je te dirais demain si je suis arrivé au
meme resultat que toi.Merci encore.Amitiées.
Effectivement il s'agit bien de paquets de 13 lignes en plus j'avais fais
une erreur
Avatar
alain.bazire
Ecuses moi Nico mais je ne vois pas apparaitre le nom de mes 2 fichiers ou
dois je les placer et ou mettre cette macro STP.Merci encore. Amitiées.Alain

A100:X112 et A288:X300, ça fait des sélections de 13 lignes ?

En supposant les paquets de 13 lignes (donc le début donne A100:X112
puis A288:X300) :

Sub Copie()
Dim wb As Workbook
Dim N As Integer
Dim i As Integer
Dim wbSource As Workbook
Set wbSource = ThisWorkbook

N = ([A100].End(xlDown).Row - 99) 12 _
- (([A100].End(xlDown).Row - 99) Mod 12 <> 0)

Set wb = Workbooks.Add

With wb.Sheets(1)
For i = 0 To N - 1
wb.Sheets(1).Range("A" & 1 + 26 * i & ":X" & 13 + 26 * i) _
= wbSource.ActiveSheet.Range("A" & 100 + 13 * i _
& ":X" & 112 + 13 * i).Value
wb.Sheets(1).Range("A" & 14 + 26 * i & ":X" & 26 + 26 * i) _
= wbSource.ActiveSheet.Range("A" & 288 + 13 * i _
& ":X" & 300 + 13 * i).Value
Next
End With
End Sub

Pour les dernières lignes n (du classeur), les lignes n + 188 ne
contiennent rien et il y a une alternance de paquets de 13 lignes vides
avec des pleines. Pour arrêter la macro avant, remplace les
([A100].End(xlDown).Row - 99)
par
([A100].End(xlDown).Row - 287).


A+
Nicolas B.

Bonsoir a toutes et tous
J'ai un fichier toto dans lequel une feuille 1 est pleine de A1:X65556 je
desire copierla plageA100:X112dans un fichier toto1 en A1. Puis copier
A288:X300 et la coller en toto1 a la ligne 13 etc toujours avec une selection
de 12 lignes et un ecart de 188 jusqu'ala fin de la feuille si la derniere
n'est pas faite je la ferais a la main.Merci de votre aide ho combien
précieuse et sympathique.Amitiées.Alain





Avatar
Nicolas B.
Ouvre d'abord les deux fichiers. J'ai supposé que les feuilles
concernées étaient les premières feuilles de chaque classeur.

Colle cette macro dans un module standard du fichier toto :

Sub Copie()

Dim N As Integer
Dim i As Integer

N = ([A100].End(xlDown).Row - 99) 12 _
- (([A100].End(xlDown).Row - 99) Mod 12 <> 0)


For i = 0 To N - 1
Workbooks("toto1.xls").Sheets(1).Range("A" & 1 + 26 * i & ":X" _
& 13 + 26 * i) = workbooks("toto.xls").sheets(1).Range("A" _
& 100 + 13 * i & ":X" & 112 + 13 * i).Value
Workbooks("toto1.xls").Sheets(1).Range("A" & 14 + 26 * i & ":X" _
& 26 + 26 * i) = Workbooks("toto.xls").Sheets(1).Range("A" _
& 288 + 13 * i & ":X" & 300 + 13 * i).Value
Next

End Sub


A+
Nicolas B.

Ecuses moi Nico mais je ne vois pas apparaitre le nom de mes 2 fichiers ou
dois je les placer et ou mettre cette macro STP.Merci encore. Amitiées.Alain


A100:X112 et A288:X300, ça fait des sélections de 13 lignes ?

En supposant les paquets de 13 lignes (donc le début donne A100:X112
puis A288:X300) :

Sub Copie()
Dim wb As Workbook
Dim N As Integer
Dim i As Integer
Dim wbSource As Workbook
Set wbSource = ThisWorkbook

N = ([A100].End(xlDown).Row - 99) 12 _
- (([A100].End(xlDown).Row - 99) Mod 12 <> 0)

Set wb = Workbooks.Add

With wb.Sheets(1)
For i = 0 To N - 1
wb.Sheets(1).Range("A" & 1 + 26 * i & ":X" & 13 + 26 * i) _
= wbSource.ActiveSheet.Range("A" & 100 + 13 * i _
& ":X" & 112 + 13 * i).Value
wb.Sheets(1).Range("A" & 14 + 26 * i & ":X" & 26 + 26 * i) _
= wbSource.ActiveSheet.Range("A" & 288 + 13 * i _
& ":X" & 300 + 13 * i).Value
Next
End With
End Sub

Pour les dernières lignes n (du classeur), les lignes n + 188 ne
contiennent rien et il y a une alternance de paquets de 13 lignes vides
avec des pleines. Pour arrêter la macro avant, remplace les
([A100].End(xlDown).Row - 99)
par
([A100].End(xlDown).Row - 287).


A+
Nicolas B.


Bonsoir a toutes et tous
J'ai un fichier toto dans lequel une feuille 1 est pleine de A1:X65556 je
desire copierla plageA100:X112dans un fichier toto1 en A1. Puis copier
A288:X300 et la coller en toto1 a la ligne 13 etc toujours avec une selection
de 12 lignes et un ecart de 188 jusqu'ala fin de la feuille si la derniere
n'est pas faite je la ferais a la main.Merci de votre aide ho combien
précieuse et sympathique.Amitiées.Alain