PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Insertion de lignes dans un fichier Excel à un endroit précis
Insertion de lignes dans un fichier Excel à un endroit précis
Iniciado por Frédéric BOITTIN, 24,abr. 2024 11:18 - 11 respuestas
Publicado el 24,abril 2024 - 11:18
Bonjour,

j'ai trouvé quelques codes OLE

mais cela ne fonctionne pas vraiment
il met A8 dans toutes les cellules

// on définit des variables Objet Automation dynamique pour lisibilité du code
MaCellule est un objet Automation dynamique
xl>>Visible=Vrai // Excel apparait à l'écran
xl>>WorkBooks>>Open("D:\Dossier RIBIMEX\test1.xls") // on ouvre le classeur
// on sélectionne sa cellule
MaCellule = xl>>activeSheet>>Range("A8")
xl>>rows(A8)>>Select()
xl>>rows("1:1")>>Select()
xl>>selection>>insert()

pouvez m'indiquer l'erreur sur ce code

Frédéric
Miembro registrado
1.939 mensajes
Popularité : +53 (65 votes)
Publicado el 24,abril 2024 - 11:58
Bonjour,

Pourquoi ne pas utiliser les fonctions natives Excel de WinDev ?
https://doc.pcsoft.fr/fr-FR/?3080020

--
Bon dev,
Jean-Pierre
Publicado el 24,abril 2024 - 14:46
Bonjour,

merci de la réponse mais il n'y a pas de commande fonctions natives Excel pour Windev d'insertion de lignes dans Excel,
je cherche aussi pour inserer une image dans une cellule de Excel avec Windev

Merci

Frédéric
Miembro registrado
5 mensajes
Publicado el 24,abril 2024 - 14:51
Bonjour

Merci de l'info, mais il n'y a pas de fonctions natives Excel de Windev pour inserer une ligne dans Excel , je cherche aussi pour inserer une image dans Excel à partir de Windev

ca ne fonctionne pas , j'ai erreur sur

MaCellule = xl>>activeSheet>>Range("G8")

et je vois pas pourquoi


// Traitement de l'enregistrement image article
// on sélectionne sa cellule
xl est un objet OLE dynamique
xl = allouer un objet OLE "Excel.Application"
MaCellule est un objet Automation dynamique
MaCellule = xl>>activeSheet>>Range("G8")
// on insère une image
// expression .AddPicture(Filename, LinkToFile, SaveWithDocument, Left, Top, Width, Height)
xl>>ActiveSheet>>Shapes>>AddPicture( "D:\Dossier RIBIMEX\TIREFORT2T.png", False, True, ...
MaCellule>>Left,MaCellule>>Top,MaCellule>>Width,MaCellule>>Height)
Miembro registrado
194 mensajes
Popularité : +4 (8 votes)
Publicado el 24,abril 2024 - 15:01
Bonjour
Essaye cela
xl est un objet OLE "Excel.Application"
xl>>Visible=OLEVrai
xl>>workbooks>>open(tonfichier.xlsx")
xl>>sheets("Feuil1")>>select(OLEVrai)
xl>>range("A8")>>select()
xl>>rows("1:1")>>select()
xl>>selection>>insert()
xl>>activeworkbook>>save()
xl>>activeworkbook>>close(OLEFaux)
xl>>Quit()

Bon DEV
Miembro registrado
5 mensajes
Publicado el 24,abril 2024 - 15:10
Bonjour,

Cool , ca à l'air OK
Merci beaucoup

aurais tu l'info pour insérer une image dans une cellule

Merci beaucoup

Frédéric
Miembro registrado
194 mensajes
Popularité : +4 (8 votes)
Publicado el 24,abril 2024 - 15:49
MaCellule est un objet Automation dynamique
xl>>Range("G8")>>Select()
xl>>Selection
xl>>Selection>>Rows>>RowHeight = 89
xl>>Selection>>Columns>>ColumnWidth = 25.00
xl>>Selection>>VerticalAlignment = -4108
xl>>Selection>>Columns>>AutoFit()
MaCellule= xl>>activeSheet>>Range("F4")
monimage est une chaîne="D:\Dossier RIBIMEX\TIREFORT2T.png"
MaChaîne1 est une chaîne
MaChaîne1 = "%1"
MonRésultat est une chaîne = ChaîneConstruit(MaChaîne1, monimage)
xl>>ActiveSheet>>Shapes>>AddPicture(MonRésultat, False, True, ...
MaCellule>>Left+8,MaCellule>>Top+4,MaCellule>>Width,MaCellule>>Height)

Bon DEV
Miembro registrado
194 mensajes
Popularité : +4 (8 votes)
Publicado el 24,abril 2024 - 15:51
MaCellule= xl>>activeSheet>>Range("G8") au lieu de F4
Miembro registrado
5 mensajes
Publicado el 24,abril 2024 - 16:03
Bonjour,

Merci beaucoup c'est top
il me reste plus qu'à utiliser ces codes dans mon appli

Merci encore

Frédéric
Miembro registrado
1.939 mensajes
Popularité : +53 (65 votes)
Publicado el 24,abril 2024 - 17:59
PS : j'ai "assimilé" à tort les fonctions Tableur aux fonctions Excel, désolé pour la méprise.
D'autant que je patauge toujours aussi dans l'interprétation du VBA Word dans WinDev ;( :D

--
Bon dev,
Jean-Pierre
Publicado el 25,abril 2024 - 10:40
Bonjour,

j'ai été un peu trop vite

lors de l'insert il insère une ligne en haut du document en A1
pourtant on a mis A8 avant, mais il insère en première ligne

Merci des infos

Frédéric
Miembro registrado
194 mensajes
Popularité : +4 (8 votes)
Publicado el 25,abril 2024 - 12:10
Bonjour
il faut retirer la ligne
xl>>rows("1:1")>>select()

Bon DEV