[Résolu] Mettre à jour des données à partir d'Excel
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
-
- Membre OOrganisé
- Messages : 56
- Inscription : 11 mai 2022 15:55
[Résolu] Mettre à jour des données à partir d'Excel
Bonjour
J'ai créé une table à partir de données contenues dans un fichier Calc, mais je me rends compte que le remplissage fait par un collègue n'était pas des plus optimisé pour simplifier la création de requêtes.
Du coup, j'ai fait un copié/collé des valeurs vers Calc pour embarquer la clef primaire et puis j'ai optimisé ce remplissage.
Je voudrais maintenant actualiser les données de la table et je pensais qu'un copié/collé, en cochant "Ajouter de données" allait suffire, mais en fait la table reste dans son état initial.
Alors je pourrais refaire une table, mais ça impliquerait de reparamétrer tous les champs pour mettre le bon type de format, etc., donc bof.
Comment faire ?
Merci
J'ai créé une table à partir de données contenues dans un fichier Calc, mais je me rends compte que le remplissage fait par un collègue n'était pas des plus optimisé pour simplifier la création de requêtes.
Du coup, j'ai fait un copié/collé des valeurs vers Calc pour embarquer la clef primaire et puis j'ai optimisé ce remplissage.
Je voudrais maintenant actualiser les données de la table et je pensais qu'un copié/collé, en cochant "Ajouter de données" allait suffire, mais en fait la table reste dans son état initial.
Alors je pourrais refaire une table, mais ça impliquerait de reparamétrer tous les champs pour mettre le bon type de format, etc., donc bof.
Comment faire ?
Merci
Dernière modification par micmac le 02 oct. 2023 07:54, modifié 2 fois.
Raison : [Résolu] remplace [résolu]. Merci de respecter la graphie des balises
Raison : [Résolu] remplace [résolu]. Merci de respecter la graphie des balises
LibreOffice 7.4.7.2 sous macOS 12
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Mettre à jour des données à partir d'Excel
Salut,
Ca ne marchera pas car une feuille de classeur (et encore pis si tu utilises un format propriétaire et fermé) n'est pas une vraie table.
-
- Membre OOrganisé
- Messages : 56
- Inscription : 11 mai 2022 15:55
Re: Mettre à jour des données à partir d'Excel
En fait ça fonctionne mais sans vraiment être une mise à jour des données.
En supprimant toutes les données de la base avant puis en collant celles venant de Calc ou d'Excel retravaillées, c'est bon.
En supprimant toutes les données de la base avant puis en collant celles venant de Calc ou d'Excel retravaillées, c'est bon.
LibreOffice 7.4.7.2 sous macOS 12
-
- RespOOnsable forum
- Messages : 9258
- Inscription : 28 août 2010 08:45
Re: Mettre à jour des données à partir d'Excel
Bonjour,
Comment clore un sujet correctement lorsqu'il est résolu
Veuillez indiquer la version complète de l'OS 12.6.6 par exemple.Dans votre signature il y a écrit :macOS 12
Comment clore un sujet correctement lorsqu'il est résolu
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Mettre à jour des données à partir d'Excel
Donc ça ne fonctionne pas.
Donc en intégrant les données dans une vraie table, ça fonctionne.
CQFD
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
- Membre prOOscrit
- Messages : 88
- Inscription : 18 juin 2023 15:10
Re: Mettre à jour des données à partir d'Excel
@ ViniAsco
vinum bonum corpus laetificat
voire schémas ci-joint.
Slts
nounours2
vinum bonum corpus laetificat
voire schémas ci-joint.
Slts
nounours2
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04
-
- Grand Maître de l'OOffice
- Messages : 16960
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: Mettre à jour des données à partir du tableur
Bonjour,
Il y a plusieurs ressources dans le forum, commentant le passage de données depuis Calc vers Base, soit par Exportation depuis Calc, soit par Importation depuis Base.
Par exemple ici :
viewtopic.php?t=41847&hilit=Base+import ... %A9es+Calc
Il y a plusieurs ressources dans le forum, commentant le passage de données depuis Calc vers Base, soit par Exportation depuis Calc, soit par Importation depuis Base.
Par exemple ici :
viewtopic.php?t=41847&hilit=Base+import ... %A9es+Calc
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- Membre prOOscrit
- Messages : 88
- Inscription : 18 juin 2023 15:10
Re: Mettre à jour des données à partir d'Excel
@ ViniAsco
Le Grand Maître est intervenu à juste titre au sujet des automatismes...
Cependant, la méthode élémentaire illustrée en-dessus est valable aussi pour davantage de données.
Je vous invite donc à un aperçu du fil suivant viewtopic.php?t=67558.
Slts
nounours2
Le Grand Maître est intervenu à juste titre au sujet des automatismes...
Cependant, la méthode élémentaire illustrée en-dessus est valable aussi pour davantage de données.
Je vous invite donc à un aperçu du fil suivant viewtopic.php?t=67558.
Slts
nounours2
Libre Office 6.0.7 sous Ubuntu 18.04
-
- Membre OOrganisé
- Messages : 56
- Inscription : 11 mai 2022 15:55
Re: Mettre à jour des données à partir d'Excel
Bonjour
Les captures données par nounours2 montrent comment créer une base depuis un tableur, ce qui ne me cause aucun problème.
Mais cette même méthode pour mettre à jour une base existante ne fonctionne pas chez moi. Ou plutôt si la mise à jour consiste en l'ajout de données, c'est bon, mais s'il s'agit de modifier des valeurs existantes, non.
Pour ce dernier point, je dois effacer la base avant.
Quant aux autres fils indiqués, ils font appel à des macros ou du code trop costauds pour mes compétences. Mais en plus et si je les ai bien compris, ils indiquent comment relier une base à un tableur, mais la méthode "ajout de données" fonctionne très bien une fois qu'on sait comment s'en servir.
Les captures données par nounours2 montrent comment créer une base depuis un tableur, ce qui ne me cause aucun problème.
Mais cette même méthode pour mettre à jour une base existante ne fonctionne pas chez moi. Ou plutôt si la mise à jour consiste en l'ajout de données, c'est bon, mais s'il s'agit de modifier des valeurs existantes, non.
Pour ce dernier point, je dois effacer la base avant.
Quant aux autres fils indiqués, ils font appel à des macros ou du code trop costauds pour mes compétences. Mais en plus et si je les ai bien compris, ils indiquent comment relier une base à un tableur, mais la méthode "ajout de données" fonctionne très bien une fois qu'on sait comment s'en servir.
LibreOffice 7.4.7.2 sous macOS 12
-
- Membre prOOscrit
- Messages : 88
- Inscription : 18 juin 2023 15:10
Re: Mettre à jour des données à partir d'Excel
Cher Monsieur ViniAsco,
Fort de votre expérience dans le traitement de texte, où l'on peut substituer le même terme répété plusieurs fois avec un clic, j'ai le regret de vous annoncer q'avec une table de base c'est un peu comme chercher midi à quatorze heures...
Néanmoins, vu que vous connaissez si bien votre tableur, vous devriez donc savoir que vous pouvez y coller les données de l'ancienne table, et préparer la feuille pour un transfert de données dans une nouvelle table en suivant le schéma susmentionné.
Slts
nounours2
Fort de votre expérience dans le traitement de texte, où l'on peut substituer le même terme répété plusieurs fois avec un clic, j'ai le regret de vous annoncer q'avec une table de base c'est un peu comme chercher midi à quatorze heures...
Néanmoins, vu que vous connaissez si bien votre tableur, vous devriez donc savoir que vous pouvez y coller les données de l'ancienne table, et préparer la feuille pour un transfert de données dans une nouvelle table en suivant le schéma susmentionné.
Slts
nounours2
Libre Office 6.0.7 sous Ubuntu 18.04
-
- InconditiOOnnel
- Messages : 951
- Inscription : 19 août 2018 05:20
Re: Mettre à jour des données à partir d'Excel
Bonjour
N'ayant pas compris ce que vous cherchez à faire veuillez fournir un document visant à reproduire le problème
Open Office 4.1.15 sous Windows 11
-
- PassiOOnné
- Messages : 629
- Inscription : 09 août 2017 22:15
Re: Mettre à jour des données à partir d'Excel
Hello,
Pour faire quelque chose de plus précis il faudrait faire une requête SQL Update qui permettrait de faire une "vraie" mise à jour et sans inclure obligatoirement toutes les données des enregistrements.
Ami calmant, J.P
En supprimant seulement les enregistrements qui doivent être mis à jour cela devrait fonctionner si les données collées contiennent l'ensemble des données des enregistrements.
Pour faire quelque chose de plus précis il faudrait faire une requête SQL Update qui permettrait de faire une "vraie" mise à jour et sans inclure obligatoirement toutes les données des enregistrements.
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
-
- Membre OOrganisé
- Messages : 56
- Inscription : 11 mai 2022 15:55
Re: Mettre à jour des données à partir d'Excel
Merci de vos réponses.
Mes connaissances en SQL sont trop limitées pour la manipulation de bases.
Et finalement, et pour mon usage, ce que j'ai décrit plus haut ne prend guère de temps et me permet d'obtenir ce que je souhaite.
Bonne fin de semaine.
Mes connaissances en SQL sont trop limitées pour la manipulation de bases.
Et finalement, et pour mon usage, ce que j'ai décrit plus haut ne prend guère de temps et me permet d'obtenir ce que je souhaite.
Bonne fin de semaine.
LibreOffice 7.4.7.2 sous macOS 12
-
- RespOOnsable forum
- Messages : 9258
- Inscription : 28 août 2010 08:45
Re: Mettre à jour des données à partir d'Excel
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
-
- PassiOOnné
- Messages : 629
- Inscription : 09 août 2017 22:15
Re: Mettre à jour des données à partir d'Excel
Hello,
Ami calmant, J.P
voici un exemple de code Basic ( ce n'est pas le bon forum ici mais le code peut servir et contient du SQL ) qui met à jour un enregistrement d'une base de données à partir d'une feuille Calc. Sur cette feuille il y a une plage nommée Data . La première ligne de cette plage est constituée des noms des champs de la base, les lignes suivantes représentent les valeurs. La première colonne (0) est la clé primaire de la base.
Code : Tout sélectionner
Sub UpdateDatabase()
Dim Context As Object, Db As Object, oHandler As Object, Conn As Object, Stmt As Object
Dim DbName As String, TableName As String, oResult As Object, StrSQL As String
Context = CreateUnoService("com.sun.star.sdb.DatabaseContext")
DbName = "GestionDéfunts"
TableName = "TableDéfunts"
Db = Context.getByName(DbName)
oHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
Conn = Db.ConnectWithCompletion(oHandler)
'Conn = Db.getConnection("","") 'username & password pair - HSQL default blank
Stmt = Conn.createStatement()
strSQL = CreateUpdateQuery(TableName)
Stmt.execute(strSQL)
Conn.getParent().flush
Conn.close()
End Sub
Function CreateUpdateQuery(TableName) As String
Dim maFeuille As Object, Query As String
Dim Champs, Data, col, row, cols, rows, cols2update
cols2Update = Array(3,4,5,6) ' colonnes à mettre à jour
maFeuille = ThisComponent.getCurrentController.getActiveSheet
Champs = maFeuille.getCellRangebyName("Data").getDataArray()
cols = champs(0) ' 1ère ligne avec le nom des champs
rows = champs(1) 'xème ligne avec les valeurs
Query = "UPDATE """ + TableName + """ SET "
For each col in cols2Update
if isnumeric(rows(col) ) then
Query = Query + """" + cols(col) + """ = " + rows(col) + " , "
else
Query = Query + """" + cols(col) + """ = '" + rows(col) + "' , "
end if
Next col
Query = Left(Query,Len(Query) - 2)
Query = Query + " WHERE """ + cols(0) + """ = " + rows(0)
CreateUpdateQuery = Query
End Function
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
-
- Membre OOrganisé
- Messages : 56
- Inscription : 11 mai 2022 15:55
Re: [résolu] Mettre à jour des données à partir d'Excel
Merci Jurassik Pork.
Je ne saurais même pas où copier/coller ce code . Je vais fouiner dans l'aide.
Bonne journée
Je ne saurais même pas où copier/coller ce code . Je vais fouiner dans l'aide.
Bonne journée
LibreOffice 7.4.7.2 sous macOS 12
-
- RespOOnsable modération
- Messages : 3954
- Inscription : 06 oct. 2008 08:03
Re: [Résolu] Mettre à jour des données à partir d'Excel
Bonjour,
Comme le rappelle Jurassic Pork, cette section n'est pas consacrée aux macros (voir le bandeau rouge en haut de la page). Si vous avez à poursuivre dans cette voie, merci de poster dans la section Macros et API. Ceci dans un but de recherche efficace de l'information dans ce forum.
Cordialement
Comme le rappelle Jurassic Pork, cette section n'est pas consacrée aux macros (voir le bandeau rouge en haut de la page). Si vous avez à poursuivre dans cette voie, merci de poster dans la section Macros et API. Ceci dans un but de recherche efficace de l'information dans ce forum.
Cordialement
Pour tout savoir sur le fonctionnement de ce forum À lire avant tout !