VBA pb d'appel de fonction
Résolu
ori05
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
-
jjsteing Messages postés 1670 Date d'inscription Statut Contributeur Dernière intervention -
jjsteing Messages postés 1670 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, j'ai crée une fonction copier_coller en VBA. Je souhaite lui passer en paramètre une plage de cellule nommée dans ma feuille. Evidemment quand je vais utiliser cette fonction le nom de la plage passée en paramètre change. Ma fonction est la suivante :
Function copier_coller(argument)
Sheets("Data_ASM").Select
Sheets("Data_ASM").Range("argument").Select
Selection.Copy
Set plage = Range("argument")
CellAdd = plage.Address
b = InStr(1, CellAdd, ":")
c = InStr(b + 2, CellAdd, "$")
ligne = Right(CellAdd, Len(CellAdd) - c)
Sheets("Data_ASM").Rows(ligne + 1).Select
Selection.Insert Shift:=xlDown
End Function
et ensuite si je veux l'utiliser
Call copier_coller(core1_ocean)
Mais bien entendu ca ne marche pas... :-)
Auriez vous une solution ??
Merci beaucoup !!
Function copier_coller(argument)
Sheets("Data_ASM").Select
Sheets("Data_ASM").Range("argument").Select
Selection.Copy
Set plage = Range("argument")
CellAdd = plage.Address
b = InStr(1, CellAdd, ":")
c = InStr(b + 2, CellAdd, "$")
ligne = Right(CellAdd, Len(CellAdd) - c)
Sheets("Data_ASM").Rows(ligne + 1).Select
Selection.Insert Shift:=xlDown
End Function
et ensuite si je veux l'utiliser
Call copier_coller(core1_ocean)
Mais bien entendu ca ne marche pas... :-)
Auriez vous une solution ??
Merci beaucoup !!
A voir également:
- Appel fonction vba
- Fonction si et - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- Double appel - Guide
- Fonction find vba - Astuces et Solutions
3 réponses
Bonjour,
Peux tu nous dire:
1) Quel message d'erreur as-tu ?
2) Sur quelle ligne l'erreur se produit.
3) core1_ocean correspondant à quoi dans : Call copier_coller(core1_ocean), est-ce une plage déjà nommée dans Excel ?
Merci
;o)
Peux tu nous dire:
1) Quel message d'erreur as-tu ?
2) Sur quelle ligne l'erreur se produit.
3) core1_ocean correspondant à quoi dans : Call copier_coller(core1_ocean), est-ce une plage déjà nommée dans Excel ?
Merci
;o)
bonjour :)
Je oense que ce sont tes guillemets qui te font l erreur ;) =>
Function copier_coller(argument)
Sheets("Data_ASM").Select
Sheets("Data_ASM").Range(argument).Select
Selection.Copy
Set plage = Range(argument)
CellAdd = plage.Address
b = InStr(1, CellAdd, ":")
c = InStr(b + 2, CellAdd, "$")
ligne = Right(CellAdd, Len(CellAdd) - c)
Sheets("Data_ASM").Rows(ligne + 1).Select
Selection.Insert Shift:=xlDown
End Function
Je oense que ce sont tes guillemets qui te font l erreur ;) =>
Function copier_coller(argument)
Sheets("Data_ASM").Select
Sheets("Data_ASM").Range(argument).Select
Selection.Copy
Set plage = Range(argument)
CellAdd = plage.Address
b = InStr(1, CellAdd, ":")
c = InStr(b + 2, CellAdd, "$")
ligne = Right(CellAdd, Len(CellAdd) - c)
Sheets("Data_ASM").Rows(ligne + 1).Select
Selection.Insert Shift:=xlDown
End Function
Bonjour :)
Bon, je t'ai fais un exemple qui fonctionne.. enfin en partie car le 'coller' se colle sur toute les lignes.. je pense que la manip serait d'inserer d abord le nombre de lignes et après faire le coller juste dans la cellule suivante...
http://dl.free.fr/getfile.pl?file=/zi6wbvhf
@++
Bon, je t'ai fais un exemple qui fonctionne.. enfin en partie car le 'coller' se colle sur toute les lignes.. je pense que la manip serait d'inserer d abord le nombre de lignes et après faire le coller juste dans la cellule suivante...
http://dl.free.fr/getfile.pl?file=/zi6wbvhf
@++
1) mon message d'erreur est le suivant : "erreur d'éxecution 1004 erreur définie par l'apllication ou par l'objet"
2) l'erreur se produit sur la ligne : Sheets("Data_ASM").Range(argument).Select (c'est évident que ça beuge ici étant donné que je n'ai pas de plage argument dans ma feuille Data_ASM ! mais je ne vois pas comment contourner ce pb....)
3) oui core1_ocean est une plage déjà nommée dans excel dans la feuille Data_ASM plus exactement
Merci beaucoup !!
Voilà un petit test.
Ca peut te permettre d'y voir un peu plus clair dans la manipulation d'un objet (Range).
;o)
Sub copier_coller(argument)
argument.Select
Selection.Copy
CellAdd = argument.Address
b = InStr(1, CellAdd, ":")
c = InStr(b + 2, CellAdd, "$")
ligne = Right(CellAdd, Len(CellAdd) - c)
Rows(ligne + 1).Select
Selection.Insert Shift:=xlDown
End Sub
Sub macro1()
Dim plage As Range
Set plage = Sheets("Data_ASM").Range("core1_ocean")
Call copier_coller(plage)
End sub
et la j'ai erreur 1004 : la methode select de la classe Range a échoué j'ai cette erreur sur la ligne argument.select
merci