Bonjour,


j'ai un pitit soucis ça fait 3heures qu eje suis sur le problème et je vois aps trop d'ou y vient

Voila en fait j'ai dans une feuille Excel plusieurs lignes et ces lignes sont en fait découpées par des lignes vides et donc découpées, si on peut dire en plage de cellules qu'il faut alors coller dans une autre feuille

Pour cela j'ai créé cette fonction pour trouver la ligne vide :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function ligne_vide(nomF As String, debut As Integer) As Integer
'fonction qui renvoie le numero de la ligne vide
Dim f As Worksheet
Set f = Worksheets(nomF)
Dim k As Long
Dim w As Long
k = debut
w = debut
While f.Cells(w, 2).Value <> ""
    k = k + 1
    w = w + 1
Wend
ligne_vide = k
End Function
Cette fonction renvoie donc un entier qui dit ou est la ligne suivante en lui indiquant d'ou on commence

Ensuite j'ai fait cette fonction, qui permet (normalement de "sélectionner" une plage) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Function plage_cellules(nomF As String, nombre_colonnes As Integer, debut_ligne As Integer) As Range
Dim f As Worksheet
Dim P As Range
Set f = Worksheets(nomF)
MsgBox (ligne_vide(nomF, debut_ligne))
Set P = f.Range(Cells(debut_ligne, 1), Cells(ligne_vide(nomF, debut_ligne), nombre_colonnes))
plage_cellules = P
End Function
Donc ensuite je fais une procédure de test pour voir si ces fonctions fonctionnent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Sub test()
Application.Sheets.Add.Name = "test"
Application.ActiveSheet.Move after:=Sheets("base")
Dim f2 As Worksheet
Set f2 = Worksheets("test")
f2.Range("A1").Value = plage_cellules("base", 4, 8).Value
End Sub
Donc comme vous le voyez ici, je créé donc une feuille appelée "test", je la met après l'autre feuille, puis je voudrais copier la plage de cellules dans cette nouvelle feuille

Mais lors de l'écution de cette macro, j'ai une erreur pendant l'éxécution de la fonction au dessus, qui "sélectionne" une plage de cellule :
J'ai erreur d'exécution '1004': la methode 'range' de l'objet "worksheet" a échoué

Est-ce que quelqu'un sait d'ou vient cette erreur ? :o parce que j'ai beau me trifougner la tete la je trouve pas

Merci beaucoup pour votre aide, en espérant avoir été assez clair dans mes explications