bonjour
j'ai testé le code suivant pour récupérer des données Excel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
exl = actxserver('excel.application');
exlWkbk = exl.Workbooks;
exlFile = exlWkbk.Open('C:\DATA\excel.xls');
exlSheet1 = exlFile.Sheets.Item('Feuil3');
robj = exlSheet1.Columns.End(4);        % Find the end of the column
numrows = robj.row;
et j'ai un petit problème puique qu'il me retourne la fin dès qu'il rencontre une case vide.
le fait est que je ne comprend pas le '4' dans l'avant dernière ligne.
si pour chaque variable créée on fait des 'get' ou des 'invoke' on obtient de longues listes
ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
K>> invoke(exlSheet1.Columns)
	Activate = Variant Activate(handle)
	AdvancedFilter = Variant AdvancedFilter(handle, XlFilterAction, Variant(Optional))
	ApplyNames = Variant ApplyNames(handle, Variant(Optional))
	ApplyOutlineStyles = Variant ApplyOutlineStyles(handle)
	AutoComplete = string AutoComplete(handle, string)
	AutoFill = Variant AutoFill(handle, handle, Variant(Optional))
	AutoFilter = Variant AutoFilter(handle, Variant(Optional))
	AutoFit = Variant AutoFit(handle)
	AutoFormat = Variant AutoFormat(handle, Variant(Optional))
	AutoOutline = Variant AutoOutline(handle)
	BorderAround = Variant BorderAround(handle, Variant(Optional))
	Calculate = Variant Calculate(handle)
	CheckSpelling = Variant CheckSpelling(handle, Variant(Optional))
	Clear = Variant Clear(handle)
	ClearContents = Variant ClearContents(handle)
	ClearFormats = Variant ClearFormats(handle)
	ClearNotes = Variant ClearNotes(handle)
	ClearOutline = Variant ClearOutline(handle)
	ColumnDifferences = handle ColumnDifferences(handle, Variant)
	Consolidate = Variant Consolidate(handle, Variant(Optional))
	Copy = Variant Copy(handle, Variant(Optional))
	CopyFromRecordset = int32 CopyFromRecordset(handle, handle, Variant(Optional))
	CopyPicture = Variant CopyPicture(handle, Variant(Optional))
	CreateNames = Variant CreateNames(handle, Variant(Optional))
	CreatePublisher = Variant CreatePublisher(handle, Variant(Optional))
	Cut = Variant Cut(handle, Variant(Optional))
	DataSeries = Variant DataSeries(handle, Variant(Optional))
	Delete = Variant Delete(handle, Variant(Optional))
	DialogBox = Variant DialogBox(handle)
	EditionOptions = Variant EditionOptions(handle, XlEditionType, XlEditionOptionsOption, Variant(Optional))
	End = handle End(handle, XlDirection)
	FillDown = Variant FillDown(handle)
	FillLeft = Variant FillLeft(handle)
	FillRight = Variant FillRight(handle)
	FillUp = Variant FillUp(handle)
	Find = handle Find(handle, Variant, Variant(Optional))
	FindNext = handle FindNext(handle, Variant(Optional))
	FindPrevious = handle FindPrevious(handle, Variant(Optional))
	FunctionWizard = Variant FunctionWizard(handle)
	GoalSeek = bool GoalSeek(handle, Variant, handle)
	Group = Variant Group(handle, Variant(Optional))
	InsertIndent = void InsertIndent(handle, int32)
	Insert = Variant Insert(handle, Variant(Optional))
	Item = Variant Item(handle, Variant, Variant(Optional))
	Justify = Variant Justify(handle)
	ListNames = Variant ListNames(handle)
	Merge = void Merge(handle, Variant(Optional))
	UnMerge = void UnMerge(handle)
	NavigateArrow = Variant NavigateArrow(handle, Variant(Optional))
	NoteText = string NoteText(handle, Variant(Optional))
	Parse = Variant Parse(handle, Variant(Optional))
	PrintPreview = Variant PrintPreview(handle, Variant(Optional))
	Range = handle Range(handle, Variant, Variant(Optional))
	RemoveSubtotal = Variant RemoveSubtotal(handle)
	Replace = bool Replace(handle, Variant, Variant, Variant(Optional))
	RowDifferences = handle RowDifferences(handle, Variant)
	Run = Variant Run(handle, Variant(Optional))
	Select = Variant Select(handle)
	Show = Variant Show(handle)
	ShowDependents = Variant ShowDependents(handle, Variant(Optional))
	ShowErrors = Variant ShowErrors(handle)
	ShowPrecedents = Variant ShowPrecedents(handle, Variant(Optional))
	Sort = Variant Sort(handle, Variant(Optional))
	SortSpecial = Variant SortSpecial(handle, Variant(Optional))
	SpecialCells = handle SpecialCells(handle, XlCellType, Variant(Optional))
	SubscribeTo = Variant SubscribeTo(handle, string, Variant(Optional))
	Subtotal = Variant Subtotal(handle, int32, XlConsolidationFunction, Variant, Variant(Optional))
	Table = Variant Table(handle, Variant(Optional))
	TextToColumns = Variant TextToColumns(handle, Variant(Optional))
	Ungroup = Variant Ungroup(handle)
	AddComment = handle AddComment(handle, Variant(Optional))
	ClearComments = void ClearComments(handle)
	SetPhonetic = void SetPhonetic(handle)
	PrintOut = Variant PrintOut(handle, Variant(Optional))
	Dirty = void Dirty(handle)
	Speak = void Speak(handle, Variant(Optional))
	PasteSpecial = Variant PasteSpecial(handle, Variant(Optional))
il doit donc y avoir de la doc de Microsoft là-dessus (d'Excel ?)
pour l'instant ce n'est pas totalement pénalisant (sur une feuille je peux lui dire exactement les cellules à lire et ça fonctionne) mais j'aimerais savoir où trouver les réponses pour régler ce problème au cas où d'autres se posent.
merci