XL 2019 Copier une plage de cellules en paramétré VBA

chris4785478547

XLDnaute Junior
Bonjour à tous,
Je n'arrive pas à trouver la bonne syntaxe pour copier une plage de cellules en paramétré en VBA.
Je veux copier un tableau avec 5 colonnes de A à E
Le nombre de lignes est variable, c'est la raison pour laquelle je souhaite paramétrer
j'ai le nombre de lignes à copier qui se trouve en cellule F25 de la même feuille (qui dans le cas présent vaut 9)
Je pensais pouvoir faire quelque chose comme:
range("A1:E" & F25).copy
Mais j'obtiens une erreur 1004: "la méthode range de l'objet global a échoué"
Merci par avance les p'tits loups !
Chris
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, chris, job75

=>chris
Comme on n'a pas vue passer la fonction souhaitée
(postée par tes soins pour notre gouverne)
En voici une (juste à titre illustratif)
VB:
Sub test()
MaCopie Sheets(1), "A1:E", Sheets(1).[F25]
Sheets(2).Paste
Application.CutCopyMode = False
End Sub
Private Function MaCopie(Feuille As Worksheet, Adresse, NombreLigne As Range)
Feuille.Range(Adresse & NombreLigne.Value).Copy
End Function

NB: La prime motivation qui fait exister ce bout de code c'est comment utiliser son temps pendant le confinement ;))
 

chris4785478547

XLDnaute Junior
Bonsoir à tous, Job, Staple,
=>Staple

Effectivement, je ne l'ai pas postée jusque là mais si ça t'intéresse, je me fais un plaisir de la fournir ici:

VB:
Sub Prélevement_auto()
 
Dim i, j, k, DerniereLigneOccupee As Long
Dim Dest As Range


    Sheets("SAISIE COMPTES ").Select
    DerniereLigneOccupee = Range("O1007")
    NombreDeLignesAEffacer = Range("P2") - (Range("Q2") - DerniereLigneOccupee)
    If (NombreDeLignesAEffacer > 0) Then
        For i = 7 To 7 + NombreDeLignesAEffacer - 1
        SupLig
        Next i
    End If
    
    
    Sheets("PRELEVEMENTS AUTO").Select
    Range("A1:E" & Range("F25")).Copy
        
   ' Selection.Copy
  
    Sheets("SAISIE COMPTES ").Select
    Range("A7").End(xlDown).Offset(1, 0).Select
    
    Set Dest = Selection
    
    Dest.PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
    
End Sub

Chaleureuses salutations et à très vite
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

=>Chris
Cela pourrait intéresser les lecteurs du fil en général.
(ou permettre interaction entre demandeur et répondeur)
La preuve ;)
Enrichi (BBcode):
Sub Prélevement_auto_variante()
Dim t
'
'....
'Uniquement pour la partie recopie
t = Sheets("PRELEVEMENTS AUTO").Range("A1:E" & Range("F25")).Value
Sheets("SAISIE COMPTES").Cells(Rows.Count, 1).End(3)(2).Resize(UBound(t, 1), UBound(t, 2)) = t
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 023
Messages
2 084 716
Membres
102 636
dernier inscrit
TOTO33000