IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

doc sur composants COM (ActiveX)


Sujet :

MATLAB

  1. #1
    Membre éclairé Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Points : 825
    Points
    825
    Par défaut doc sur composants COM (ActiveX)
    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

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Citation Envoyé par tubaas Voir le message
    il doit donc y avoir de la doc de Microsoft là-dessus (d'Excel ?)
    Sous Excel 2003 : menu ? > Aide sur Microsoft Excel
    Dans la fenêtre qui s'ouvre à droite : Table des matières > Références Visual Basic Microsoft Excel

    Bon courage... j'ai passé pas mal de temps dans ces pages et j'ai quasiment toujours finis par trouver ce que je cherchais... parfois au prix de longues séries de tâtonnement. En même temps, j'aurais peut être dû passer plus de temps à apprendre le VBA

    L'autre solution consiste à créer des macro VBA : menu Outils > Macro > Nouvelle macro
    Puis d'étudier le code généré.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre éclairé Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Points : 825
    Points
    825
    Par défaut
    merci
    et j'ai même réussi à trouver l'explication pour le End (qui n'apporte pas grand chose)
    End, propriété
    Cette propriété renvoie un objet Range qui représente la cellule à la fin de la zone qui contient la plage source. Elle correspond aux combinaisons de touches FIN+HAUT, FIN+BAS, FIN+GAUCHE ou FIN+DROITE. Objet Range en lecture seule.

    expression.End(Direction)
    expression Obligatoire. Expression qui renvoie un des objets répertoriés dans la liste S'applique à.

    Direction Argument XlDirection obligatoire. Direction du déplacement.

    XlDirection peut être l'une de ces constantes XlDirection.
    xlDown
    xlToRight
    xlToLeft
    xlUp

    Exemples
    Cet exemple montre comment sélectionner la cellule située en haut de la colonne B dans la région contenant la cellule B4

    Range("B4").End(xlUp).Select

    Cet exemple montre comment sélectionner la cellule à la fin de la ligne 4 dans la région contenant la cellule B4.

    Range("B4").End(xlToRight).Select

    Cet exemple montre comment étendre la sélection de la cellule B4 à la dernière cellule de la ligne 4 contenant des données.

    Worksheets("Sheet1").Activate
    Range("B4", Range("B4").End(xlToRight)).Select
    bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. IUnknown::Release sur un composant COM
    Par scolyo dans le forum Visual C++
    Réponses: 7
    Dernier message: 22/09/2008, 11h45
  2. Composant COM sur achitecture n-tier
    Par inluvwitiou dans le forum ASP
    Réponses: 3
    Dernier message: 11/02/2008, 14h46
  3. "UnsetFocus" sur un composant contrôle ActiveX
    Par Goupo dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 04/06/2007, 15h46
  4. Détecter la présence d'un composant COM sur le système ?
    Par Vince dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/12/2006, 10h07
  5. Langages de développement pour les Composant Com et ActiveX
    Par Pilloutou dans le forum Composants VCL
    Réponses: 1
    Dernier message: 16/08/2006, 22h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo