Excel, range avec variable

Résolu
toosdu87 Messages postés 100 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 mars 2010 - 12 févr. 2007 à 11:55
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 13 févr. 2007 à 21:33
Bonjour a tous, je travaille sur VB2005
savez vous s'il est possible de faire ceci:
feuille.Range(

"E5").AutoFill(feuille.Range(
"E5:E240"), Excel.XlAutoFillType.xlFillCopy)

en remplacant le "240" par une variable "Fin_ligne".

De plus si quelqu'un connait du code permettant de sélectionner toute la plage de cellule sans connaître la ligne de fin???

Merci d'avance

9 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
12 févr. 2007 à 13:59
Exemple:
C'est un peu lourd mais ça marche:



Dim
appxls

As
Microsoft.Office.Interop.Excel.Applicationappxls =


New
Microsoft.Office.Interop.Excel.Applicationappxls.Visible =


True






'Ajouter un nouveau classeur

appxls.Workbooks.Add()







'Enregistrer sous le classeur

appxls.ActiveWorkbook.SaveAs(




"C:\NouveauClasseur"
)


'Recopie automatique de formule et autre






Dim
xlFillDefault

As
Microsoft.Office.Interop.Excel.XlAutoFillTypeappxls.ActiveWorkbook.Worksheets(


"Feuil1"
).range(

"A8"
) = 1appxls.ActiveWorkbook.Worksheets(


"Feuil1"
).range(

"A9"
) = 2appxls.ActiveWorkbook.Worksheets(


"Feuil1"
).Range(

"A8:A9"
).Select()


Dim
i

As



Integer

i = 100


appxls.ActiveWorkbook.Worksheets(




"Feuil1"
).Range(

"A8:A9"
).AutoFill(Destination:=appxls.ActiveWorkbook.Worksheets(

"Feuil1"
).Range(appxls.ActiveWorkbook.Worksheets(

"Feuil1"
).cells(8, 1), appxls.ActiveWorkbook.Worksheets(

"Feuil1"
).cells(i, 1)), Type:=xlFillDefault)appxls.ActiveWorkbook.Close(


False
)appxls.Quit()






 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
12 févr. 2007 à 12:00
Salut
i=240
feuille.Range("E5").AutoFill(feuille.Range(Cells(5, 5), Cells(i, 5)).Select
Excel.XlAutoFillType.xlFillCopy)

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
toosdu87 Messages postés 100 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 mars 2010
12 févr. 2007 à 12:12
Merci Drikce06,
question peut être bete mais  lorsque je copie ton code, Cells n'est pas déclaré.
J'ai ajouté "feuille" devant donc:
feuille.Range(

"E5").AutoFill(feuille.Range(feuille.Cells(5, 5), feuille.Cells(Fin_ligne, 5)).SelectExcel.XlAutoFillType.xlFillCopy)

Mais cela me génère une erreur
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
12 févr. 2007 à 13:20
C'est quoi l'erreur?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toosdu87 Messages postés 100 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 mars 2010
12 févr. 2007 à 13:37
En mettant:
feuille.Range("E5").AutoFill(feuille.Range(feuille.Cells(5, 5), feuille.Cells(Fin_ligne, 5)).SelectExcel.XlAutoFillType.xlFillCopy)

j'obtiens l'erreur suivante:

Le type ne correspond pas. (Exception de HRESULT : 0x80020005 (DISP_E_TYPEMISMATCH))
0
toosdu87 Messages postés 100 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 mars 2010
12 févr. 2007 à 14:20
Ok je me suis inspiré de ce que tu as fait.
Voila ma solution:
feuille.Range(

"E5").AutoFill(feuille.Range(feuille.Cells(5, 5), feuille.Cells(Fin_ligne, 5)), XlAutoFillType.xlFillCopy)

Merci Beaucoup
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 févr. 2007 à 18:10
"réponses acceptées" corrigées...
0
toosdu87 Messages postés 100 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 mars 2010
13 févr. 2007 à 21:16
PCPT la prochaine fois que tu corrige  a ta façon, essai au moins de lire si ce post correspond à la reponse.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 févr. 2007 à 21:33
toosdu87
-> si j'ai signalé c'est pour permettre à chacun de recevoir l'alerte. libre (et possible) à toi donc de faire "mieux".
aucun de nous n'aurait eu à cliquer dans tous les sens si çà avait été le cas dès le début.

bonne soirée
0
Rejoignez-nous