Méthode Range
Bonjour a tous,
Voila je cherche a copier une plage de cellule (dans un le classeur) dans un autre autre classeur classeur (classeur2).
Jusque là, la question est assez simple.
Sauf que la macro se trouve dans le classeur qui doit recevoir la plage de cellule (cad le classeur2).
Donc la macro ouvre le classeur1 , sélectionne la plage de cellule la copie et la colle a l'endroit voulu.
Jusque la tout va bien
Maintenant la plage de cellule à sélectionner n'est pas fixe puisque si elle l'était certaines cellules pourrais être vide et impacterais fortement le reste de la macro.
Donc le deal est de déterminer la dernière cellule renseignée de la colonne 1 du classeur 1 (la première cellule étant toujours la même).
pour déterminer cette dernière cellule j'utilise le code suivant :
Public Function DerniereLigne(Feuille As String, IndiceColonne As Integer) As Integer
Dim aRow As Integer
Ligne = 0
aRow = 10
Do
If Worksheets("DATA").Cells(aRow, IndiceColonne).Value <> "" Then
aRow = aRow + 1
Else
Ligne = aRow
End If
Loop Until Ligne > 0
DerniereLigne = Ligne
End FunctionCe code fonctionne très bien
Maintenant je cherche a sélectionner la plage a copier.
Voici le code que j'ai écrit :
Private Sub CommandButton1_Click()
Workbooks.Open Filename:="chemin\classeur1.xls"
Windows("classeur1.xls").Activate
Sheets("DATA").Select
Ligne = DerniereLigne("DATA", 1) ' ligne = numéro de la dernière ligne a prendre dans la plage de cellule à sélectionner
[u]Range("A10:Cells(Ligne, 1)").Select[/u]
Selection.Copy
Windows("classeur2.xls").Activate
Sheets("Feuil1").Select
Range("A10").Select
Sheets("Feuil1").Select
ActiveSheet.Unprotect
Range("A10").Select
ActiveSheet.Paste
Windows("classeur1.xls").Activate
Workbooks("classeur1.xls").Close
Application.CutCopyMode = False
End SubMaintenant j'ai une erreur "La méthode 'Range' de l'objet '_global' a échoué" ( la ligne soulignée)
Mais je ne sais pas comment écrire cette ligne.
Merci
Bonjour
Essayes
Range("A10:A" & Ligne).SelectOn pourrait simplifier ton code si tu le désires
Dans ce cas joins ton fichier
Salut,
J'ai essayé ton code mais marche pas.
par contre ça marche avec celui la :
Range("A" & 10, "A" & Ligne).Select(une "," a la place des ":")
Je vais continuer d'avancer sur le code. je reviendrais probablement pour d'autres questions :
On simplifiera le code quand la macro sera terminée si ça ne t'ennuie pas.
Merci et a Bientôt
Bonjour
Tu m'inquiètes si tu me dis que ce code ne fonctionne pas
Range("A10:A" & Ligne).SelectJ'ai fais un test
Sub test()
Ligne = 20
Range("A10:A" & Ligne).Select
End SubEt pas de souci