Excel, range avec variable [Résolu]

toosdu87 100 Messages postés lundi 3 avril 2006Date d'inscription 1 mars 2010 Dernière intervention - 12 févr. 2007 à 11:55 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 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
Afficher la suite 

9 réponses

Répondre au sujet
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 12 févr. 2007 à 13:59
+3
Utile
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:
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 12 févr. 2007 à 12:00
0
Utile
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:
Commenter la réponse de drikce06
toosdu87 100 Messages postés lundi 3 avril 2006Date d'inscription 1 mars 2010 Dernière intervention - 12 févr. 2007 à 12:12
0
Utile
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
Commenter la réponse de toosdu87
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 12 févr. 2007 à 13:20
0
Utile
C'est quoi l'erreur?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
toosdu87 100 Messages postés lundi 3 avril 2006Date d'inscription 1 mars 2010 Dernière intervention - 12 févr. 2007 à 13:37
0
Utile
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))
Commenter la réponse de toosdu87
toosdu87 100 Messages postés lundi 3 avril 2006Date d'inscription 1 mars 2010 Dernière intervention - 12 févr. 2007 à 14:20
0
Utile
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
Commenter la réponse de toosdu87
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 13 févr. 2007 à 18:10
0
Utile
"réponses acceptées" corrigées...
Commenter la réponse de PCPT
toosdu87 100 Messages postés lundi 3 avril 2006Date d'inscription 1 mars 2010 Dernière intervention - 13 févr. 2007 à 21:16
0
Utile
PCPT la prochaine fois que tu corrige  a ta façon, essai au moins de lire si ce post correspond à la reponse.
Commenter la réponse de toosdu87
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 13 févr. 2007 à 21:33
0
Utile
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
Commenter la réponse de PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.