PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Document xls
Document xls
Iniciado por jb1aubin, 27,jul. 2020 22:29 - 6 respuestas
Publicado el 27,julio 2020 - 22:29
Bonsoir,
Est-il possible sur un document xls de manière simple :
- de copier/insérer une ligne ou une colonne
- de dupliquer une feuille

Merci
Miembro registrado
1.173 mensajes
Publicado el 28,julio 2020 - 09:06
Bonjour,

Oui
(en l'absence de détails plus précis sur votre souci, je n'ai pas de meilleure réponse)

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Miembro registrado
948 mensajes
Publicado el 28,julio 2020 - 11:51
Bonjour,
En règle générale, lorsque-vous recherchez la syntaxe d'une commande
Il suffit de lancer Excel, onglet «AFFICHAGE» «Macros» puis «Enregistrer une macro»
Donnez un nom à votre macro (par défaut «Macro1»)
De retour sur la feuille Excel effectuez l'action dont vous désirez avoir le code.
Exemple : onglet «ACCUEIL» Feuil1 clic sur colonne D clic droit sur colonne D inserer
Cliquez sur l'onglet «AFFICHAGE» «Macros» puis «Arrêter l'enregistrement»
Cliquez sur l'onglet «AFFICHAGE» «Macros» puis «Afficher les macros»
Sélectionnez votre macro et cliquez sur le bouton «Modifier»
Vous obtenez :
Sub Macro1()
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Ce qui setraduit en WDlangage par :
xl est un objet automation dynamique
xl = allouer un objet automation "Excel.Application"
IF xl = Null THEN
Trace("Erreur 'Excel.application' n'est pas installé sur ce poste !")
RETOUR
END
xl>>Visible = True
xl>>WorkBooks>>Open(ComplèteRep(fRepExe())+"Classeur1.xlsx")
WHEN EXCEPTION IN
xl>>Worksheets("Feuil1")>>Activate
DO
Erreur("Feuille inconnue !")
END

// ajout une colonne entre la colonne C et la colonne D
xl>>ActiveSheet>>Columns("D:D")>>Select
xl>>Selection>>Insert(xlToRight)


Pour la liste des constantes (ex : xlToRight) il suffit de chercher sur google https://docs.microsoft.com/en-us/office/vba/api/excel.xldirection
Perso j'ai un fichier cteEXCEL.wl (c'est du texte) contenant les 2215 constantes et dans le code du projet j'ai EXTERNE "D:\Mes Projets\Essais\cteEXCEL.wl"

--
« L'erreur ne devient pas vérité parce qu'elle se propage et se multiplie ; la vérité ne devient pas erreur parce que nul ne la voit. » Gandhi
Miembro registrado
4 mensajes
Publicado el 28,julio 2020 - 12:08
Bonjour,
Toutes mes excuses pour mes imprécisions.
Je vais essayer d'être plus explicite :
Dans excel, je peux sélectionner une feuille de calcul et la copie avec tout son contenu (exemple a feuil1 est copier en une feuil1(2)).
Dans les fonctions Windev, je n'ai vu de fonctions xls qui permettraient de le faire.

Il en ai de même pour les lignes et colonnes : sur excel, on peut copier et insérer.
Merci.

--
Jean-Baptiste AUBIN
AACS
Miembro registrado
4 mensajes
Publicado el 28,julio 2020 - 12:12
Bonjour,
OK Merci.
C'est en passant par un objet ole et non par les fonctions xls
Merci.
Philippe Pasquali a écrit :
Bonjour,
En règle générale, lorsque-vous recherchez la syntaxe d'une commande
Il suffit de lancer Excel, onglet «AFFICHAGE» «Macros» puis «Enregistrer une macro»
Donnez un nom à votre macro (par défaut «Macro1»)
De retour sur la feuille Excel effectuez l'action dont vous désirez avoir le code.
Exemple : onglet «ACCUEIL» Feuil1 clic sur colonne D clic droit sur colonne D inserer
Cliquez sur l'onglet «AFFICHAGE» «Macros» puis «Arrêter l'enregistrement»
Cliquez sur l'onglet «AFFICHAGE» «Macros» puis «Afficher les macros»
Sélectionnez votre macro et cliquez sur le bouton «Modifier»
Vous obtenez :
Sub Macro1()
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Ce qui setraduit en WDlangage par :
xl est un objet Automation dynamique
xl = allouer un objet Automation "Excel.Application"
IF xl = Null THEN
Trace("Erreur 'Excel.application' n'est pas installé sur ce poste !")
RETOUR
END
xl>>Visible = True
xl>>WorkBooks>>Open(ComplèteRep(fRepExe())+"Classeur1.xlsx")
WHEN EXCEPTION IN
xl>>Worksheets("Feuil1")>>Activate
DO
Erreur("Feuille inconnue !")
END

// ajout une colonne entre la colonne C et la colonne D
xl>>ActiveSheet>>Columns("D:D")>>Select
xl>>Selection>>Insert(xlToRight)


Pour la liste des constantes (ex : xlToRight) il suffit de chercher sur google https://docs.microsoft.com/en-us/office/vba/api/excel.xldirection
Perso j'ai un fichier cteEXCEL.wl (c'est du texte) contenant les 2215 constantes et dans le code du projet j'ai EXTERNE "D:\Mes Projets\Essais\cteEXCEL.wl"

--
« L'erreur ne devient pas vérité parce qu'elle se propage et se multiplie ; la vérité ne devient pas erreur parce que nul ne la voit. » Gandhi


--
Jean-Baptiste AUBIN
AACS
Publicado el 29,julio 2020 - 10:36
Oui par un objet ole

et si je peux me permettre c'est là où le bât blesse

Car, je sais on est dans le forum wd, mais si vous voulez utiliser cela
dans un site WB, il n'est pas recommandé d'installer une vs d'excel sur
le serveur web.
Donc je n'utilise plus les classes OLE que l'on avait avant, justement
pour rester dans les fonctions intégrées.

Avec les fonctions excel intégrées au Wlangage, on fait PRESQUE tout.
Ce qui me manque
- la possibilité de fusionner des colonnes
- la gestion des formules

Avec juste ça, on serait les rois du pétrole
Sinon j'ai déjà utilisé (en web) la copie d'un modèle où la
présentation était déjà faite (fusion de colonnes, formatage ...) et
ensuite je renseignais les cellules avec des données.
A part quelques restitutions de styles qui passaient à l'as, cela
marchait plutôt bien.



Bonjour,
OK Merci.
C'est en passant par un objet ole et non par les fonctions xls
Merci.
Philippe Pasquali a écrit :
Bonjour,
En règle générale, lorsque-vous recherchez la syntaxe d'une commande
Il suffit de lancer Excel, onglet «AFFICHAGE» «Macros» puis «Enregistrer
une macro»
Donnez un nom à votre macro (par défaut «Macro1»)
De retour sur la feuille Excel effectuez l'action dont vous désirez avoir
le code.
Exemple : onglet «ACCUEIL» Feuil1 clic sur colonne D clic droit sur colonne
D inserer
Cliquez sur l'onglet «AFFICHAGE» «Macros» puis «Arrêter l'enregistrement»
Cliquez sur l'onglet «AFFICHAGE» «Macros» puis «Afficher les macros»
Sélectionnez votre macro et cliquez sur le bouton «Modifier»
Vous obtenez :
Sub Macro1()
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Ce qui setraduit en WDlangage par :
xl est un objet Automation dynamique
xl = allouer un objet Automation "Excel.Application"
IF xl = Null THEN
Trace("Erreur 'Excel.application' n'est pas installé sur ce poste !")
RETOUR
END
xl>>Visible = True
xl>>WorkBooks>>Open(ComplèteRep(fRepExe())+"Classeur1.xlsx")
WHEN EXCEPTION IN
xl>>Worksheets("Feuil1")>>Activate
DO
Erreur("Feuille inconnue !")
END

// ajout une colonne entre la colonne C et la colonne D
xl>>ActiveSheet>>Columns("D:D")>>Select
xl>>Selection>>Insert(xlToRight)


Pour la liste des constantes (ex : xlToRight) il suffit de chercher sur
google https://docs.microsoft.com/en-us/office/vba/api/excel.xldirection
Perso j'ai un fichier cteEXCEL.wl (c'est du texte) contenant les 2215
constantes et dans le code du projet j'ai EXTERNE "D:\Mes
Projets\Essais\cteEXCEL.wl"

--
« L'erreur ne devient pas vérité parce qu'elle se propage et se multiplie ;
la vérité ne devient pas erreur parce que nul ne la voit. » Gandhi


--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Miembro registrado
4 mensajes
Publicado el 29,julio 2020 - 14:48
Roumegou a écrit :
Oui par un objet ole

et si je peux me permettre c'est là où le bât blesse

Car, je sais on est dans le forum wd, mais si vous voulez utiliser cela
dans un site WB, il n'est pas recommandé d'installer une vs d'excel sur
le serveur web.
Donc je n'utilise plus les classes OLE que l'on avait avant, justement
pour rester dans les fonctions intégrées.

Avec les fonctions excel intégrées au Wlangage, on fait PRESQUE tout.
Ce qui me manque
- la possibilité de fusionner des colonnes
- la gestion des formules

Avec juste ça, on serait les rois du pétrole
Sinon j'ai déjà utilisé (en web) la copie d'un modèle où la
présentation était déjà faite (fusion de colonnes, formatage ...) et
ensuite je renseignais les cellules avec des données.
A part quelques restitutions de styles qui passaient à l'as, cela
marchait plutôt bien.



Bonjour,
OK Merci.
C'est en passant par un objet ole et non par les fonctions xls
Merci.
Philippe Pasquali a écrit :
Bonjour,
En règle générale, lorsque-vous recherchez la syntaxe d'une commande
Il suffit de lancer Excel, onglet «AFFICHAGE» «Macros» puis «Enregistrer
une macro»
Donnez un nom à votre macro (par défaut «Macro1»)
De retour sur la feuille Excel effectuez l'action dont vous désirez avoir
le code.
Exemple : onglet «ACCUEIL» Feuil1 clic sur colonne D clic droit sur colonne
D inserer
Cliquez sur l'onglet «AFFICHAGE» «Macros» puis «Arrêter l'enregistrement»
Cliquez sur l'onglet «AFFICHAGE» «Macros» puis «Afficher les macros»
Sélectionnez votre macro et cliquez sur le bouton «Modifier»
Vous obtenez :
Sub Macro1()
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Ce qui setraduit en WDlangage par :
xl est un objet Automation dynamique
xl = allouer un objet Automation "Excel.Application"
IF xl = Null THEN
Trace("Erreur 'Excel.application' n'est pas installé sur ce poste !")
RETOUR
END
xl>>Visible = True
xl>>WorkBooks>>Open(ComplèteRep(fRepExe())+"Classeur1.xlsx")
WHEN EXCEPTION IN
xl>>Worksheets("Feuil1")>>Activate
DO
Erreur("Feuille inconnue !")
END

// ajout une colonne entre la colonne C et la colonne D
xl>>ActiveSheet>>Columns("D:D")>>Select
xl>>Selection>>Insert(xlToRight)


Pour la liste des constantes (ex : xlToRight) il suffit de chercher sur
google https://docs.microsoft.com/en-us/office/vba/api/excel.xldirection
Perso j'ai un fichier cteEXCEL.wl (c'est du texte) contenant les 2215
constantes et dans le code du projet j'ai EXTERNE "D:\Mes
Projets\Essais\cteEXCEL.wl"

--
« L'erreur ne devient pas vérité parce qu'elle se propage et se multiplie ;
la vérité ne devient pas erreur parce que nul ne la voit. » Gandhi


--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus

Super!
Merci encore.

--
Jean-Baptiste AUBIN
AACS