probleme de copier coller

T

tony

Guest
bonjour le forum,
Pouvez vous me dire ou se situe le probleme de ma programmation ci joint
par avance merci

Sub tony()

' tony Macro

Application.ScreenUpdating = False

r = MsgBox('vous voulez importer les Relevés de Prix ? ', vbYesNo)
If r = vbYes Then

With ActiveWorkbook
.Sheets('TARIFAIRE').Unprotect
End With

'boucle pour ouvrir les fichiers releves magasins afin de les copier
For T = 10 To 36
If IsEmpty(Cells(T, 93)) Then GoTo ligne600
On Error GoTo ligne600
Workbooks.Open Filename:=ActiveWorkbook.Sheets(1).Cells(T, 93)


'boucle pour copier les releves dans des plages de colonnes
If I > 2 And I 19 And I 36 And I < 48 Then



Range('c3:c5').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(5, I).Activate
ActiveSheet.Paste
Cells(5, I).Validation.Delete
Cells(6, I).Validation.Delete
Cells(7, I).Validation.Delete
Windows(2).Activate
Application.CutCopyMode = False


Range('c44:c45').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(49, I).Activate
ActiveSheet.Paste
Cells(49, I).Validation.Delete
Cells(50, I).Validation.Delete
Windows(2).Activate
Application.CutCopyMode = False

Range('c73').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(79, I).Activate
ActiveSheet.Paste
Cells(79, I).Validation.Delete
Windows(2).Activate
Application.CutCopyMode = False

Range('c102:c103').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(110, I).Activate
ActiveSheet.Paste
Cells(110, I).Validation.Delete
Cells(111, I).Validation.Delete
Windows(2).Activate
Application.CutCopyMode = False

Range('c131:c132').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(141, I).Activate
ActiveSheet.Paste
Cells(141, I).Validation.Delete
Cells(142, I).Validation.Delete
Windows(2).Activate
Application.CutCopyMode = False

Range('c151').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(162, I).Activate
ActiveSheet.Paste
Cells(162, I).Validation.Delete
Windows(2).Activate
Application.CutCopyMode = False

Range('d7:d41').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(11, I).Select
ActiveSheet.Paste
Windows(2).Activate
Application.CutCopyMode = False

Range('d47:d69').Select
Selection.Copy
Application.Windows('TRAVAIL TARIF').Activate
Cells(53, I).Select
ActiveSheet.Paste
Application.CutCopyMode = False

Windows(2).Activate
Range('d75:d98').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(82, I).Select
ActiveSheet.Paste
Application.CutCopyMode = False

Windows(2).Activate
Range('d105:d128').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(114, I).Select
ActiveSheet.Paste
Application.CutCopyMode = False


Windows(2).Activate
Range('d134:d147').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(145, I).Select
ActiveSheet.Paste
Application.CutCopyMode = False


Windows(2).Activate
Range('d153:d155').Select
Selection.Copy
Windows('TRAVAIL TARIF').Activate
Cells(165, I).Select
ActiveSheet.Paste
Application.CutCopyMode = False




Application.Windows(2).Activate
ActiveWorkbook.Close SaveChanges:=False


'for = T


End If

Exit Sub
ligne600:
If T < 48 Then T = T + 1 Else Sheets('tarifaire').Protect: End
Resume



Application.ScreenUpdating = True
Application.Goto Range('A10')

End If

End Sub
 

porcinet82

XLDnaute Barbatruc
Salut Tony,

Tu devrais joindre un fichier avec un petit exemple afin que l'on puisse tester ta macro directement, par ce que la le code est assez long.
De plus, tu ne donne aucune information sur ce que ton code est censé faire, il faut donc comprendre ce que fais ton code et apres chercher l'erreur, ca fait un peu baucoup, surtout en cette date du 31, tu ne crois pas?

@+
 
T

tony

Guest
bonjour a toutes et tous et meilleurs voeux pour 2006.

Explication : La programmation de mon fichier actif (tarifaire) ouvre à partir d’une liste (liste de 26 fichiers), un par un d’autres fichiers leurs copier des partis de colonne et les coller sur des plages de colonnes (26 colonnes) que j’ai défini dans mon fichier actif
Question : je souhaiterai faire une boucle afin que mes colonnes se remplissent au pas +1 sans vide (exemple : sur ma liste de 26 fichiers il se peut qu’il y en ait que 15 fichiers a copier donc 15 colonnes et 11 vides ensemble.

par avance merci.
tony
 

porcinet82

XLDnaute Barbatruc
Salut Tony,

Je ne saisie toujours pas ce que tu souhaites faire, alors je vais surement repondre a coté de la question, mais bon j'essaie.
Pour faire une boucle sur des colonnes, tu peux utiliser :

Code:
For j=1 to 5
columns(j).select

Next j

ou bien

For j = 1 To 5
cells(1,j).select

Next j

@+

PS : avec une PJ, ce serait quand meme plus facile
 
T

tony

Guest
Bonjour,
Mille excuses mais s'essaye d'être le plus explicite que possible, c'est pas facile par écrit.
dans ton exemple:

For j = 1 To 5
Cells(1, j).Select

Next j

comment puis je ecrire ma boucle de la colonne
1 a 5, 7 a 12, et de 14 a 19

Merci
 

porcinet82

XLDnaute Barbatruc
Salut Tony,

Je sais que ce n'est pas évident d'ou ma demande de pièce jointes avec un exemple.

Pour ce qui est des boucles, tu es obligé d'en faire trois.

Code:
For j=1 to 5
  'code
Next j

For k=7 to 12
  'code
Next k

For l=14 to 19
  'code
Next l

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 610
Messages
2 090 211
Membres
104 452
dernier inscrit
hamzamounir