Excel, range avec variable

[Résolu]
Signaler
Messages postés
100
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
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

Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
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:
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
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:
Messages postés
100
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010

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
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
C'est quoi l'erreur?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Messages postés
100
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010

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))
Messages postés
100
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010

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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
"réponses acceptées" corrigées...
Messages postés
100
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010

PCPT la prochaine fois que tu corrige  a ta façon, essai au moins de lire si ce post correspond à la reponse.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
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