vba copie range (cell(),cell()) entre feuille erreur 9

francois_

XLDnaute Nouveau
bonjour
je cherche à faire une copie de cellule entre feuille d'un même fichier et j'ai une "erreur 9 l'indice n'appartient pas à la sélection" dont je n'arrive pas à me défaire malgré le rajout du Workbooks("nom du fichier").Worksheets("feuille").
la ligne du collage est surlignée en jaune.
je ne vois pas ce qui lui déplait.

nota: p et q me servent à faire des décalages entre les formats différents de feuilles.

merci de votre sagacité

Code:
 Sub copie_decision_pdp()

Dim p As Integer
Dim q As Integer

  Application.Calculation = xlCalculationManual
  Application.ScreenUpdating = False


    q = 6
    
For p = 22 To 3669
        'copie decision pdp
         Workbooks("essai PDP petite serie  - nov 15 test").Worksheets("PDP").Range(Cells(p, 6), Cells(p, 22)).Copy
         Workbooks("essai PDP petite serie  - nov 15 test").Worksheets("DONNEES pdp").Range(Cells(q, 14), Cells(q, 30)).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
         'copie tf
            Workbooks("essai PDP petite serie  - nov 15 test").Worksheets("PDP").Cells(p - 2, 2).Copy
            Workbooks("essai PDP petite serie  - nov 15 test").Worksheets("DONNEES pdp").Cells(q, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False
        ' on passe à la référence suivante
    p = p + 11
    q = q + 1
Next p

  Application.Calculation = xlAutomatic
  Application.ScreenUpdating = True
End Sub
 

vgendron

XLDnaute Barbatruc
Re : vba copie range (cell(),cell()) entre feuille erreur 9

Bonjour

sans fichier exemple, difficile de se faire une idée exacte du problème
toutefois. une piste:
dans ton code, tu fais une boucle
for p=22 to 3669
et juste avant le next (qui amène p à 23. puis à 24 puis 25..., tu fais un p=p+11
peut etre qu'il y a conflit à ce moment la:

essaie:
for p=22 to 3669 step 11
et supprime le p=p+11
 

Si...

XLDnaute Barbatruc
Re : vba copie range (cell(),cell()) entre feuille erreur 9

salut

Salut

Problème d'imprécision ici (où est-on ?)

Workbooks("essai PDP petite serie - nov 15 test").Worksheets("DONNEES pdp").Range(Cells(q, 14), Cells(q, 30)).PasteSpecial Paste:=xlPasteValuesAndNumberFormats,

J'aurais plutôt écrit dans la page de code de la feuille "DONNEES pdp"
Code:
Sub copie_decision_pdp()
  Dim p As Long, q As Long
  Application.Calculation = xlCalculationManual
  Application.ScreenUpdating = 0
  q = 6
  With Worksheets("PDP")
    For p = 22 To 3669
      .Cells(p, 6).Resize(, 17).Copy Cells(q, 14)
      .Cells(p - 2, 2).Copy Cells(q, 1)
      p = p + 11  'ou passer par Step 11
      q = q + 1
    Next p
  End With
  Application.Calculation = xlAutomatic
End Sub
 

francois_

XLDnaute Nouveau
Re : vba copie range (cell(),cell()) entre feuille erreur 9

merci si.... pour cette version de la macro, cela donne des idées nouvelles, mais je ne pense pas que cela fasse l'effet escompté.

je cherche à copier dans la feuille "pdp" et à coller dans la feuille "données pdp".

peut on faire un copier coller sur deux feuilles différentes avec With Worksheets("PDP")?

.Cells(p, 6).Resize(, 17).Copy Cells(q, 14)
en rouge pour la feuille "pdp", en vert pour la feuille "données pdp"
 

francois_

XLDnaute Nouveau
Re : vba copie range (cell(),cell()) entre feuille erreur 9

dernière question, cette méthode de copier/coller en une ligne permet elle de faire un collage spécial?
ce code ne fonctionne pas
Code:
 .Cells(p, 6).Resize(, 17).Copy Worksheets("DONNEES_pdp").Cells(q, 14).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 

francois_

XLDnaute Nouveau
Re : vba copie range (cell(),cell()) entre feuille erreur 9

ni cette version

Code:
.Cells(p, 6).Resize(, 17).Copy Worksheets("DONNEES_pdp").Cells(q, 14).value

ni cette version

Code:
.Cells(p, 6).Resize(, 17).Copy Worksheets("DONNEES_pdp").Cells(q, 14).values

help
 

vgendron

XLDnaute Barbatruc
Re : vba copie range (cell(),cell()) entre feuille erreur 9

toujours avec l'aide

.Cells(p, 6).Resize(, 17)

With sheets("DONNEES_pdp").Cells(q, 14)
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 811
Membres
104 671
dernier inscrit
Guilbry