Se rendre au contenu

Facilitez vos imports Odoo avec Excel et VBA

Transformez automatiquement vos données Excel pour qu'elles soient prêtes à l'import dans Odoo
8 avril 2025 par
LCSX Tech, Laurent Cossiaux

Lorsque vous importez des données dans Odoo, vous pouvez avoir besoin d'importer plusieurs valeurs dans un même champ (par exemple, des étiquettes, fournisseurs ou catégories associées à un produit). Par défaut, Odoo attend ces valeurs sur plusieurs lignes distinctes dans le fichier d'import.

Souvent, vos données initiales dans Excel ressemblent à ceci :

ProduitFournisseursÉtiquettes
ChaiseIKEA, Maison du MondeMeuble, Salon
LampeLeroy MerlinÉclairage, Salon

Mais Odoo a besoin du format suivant pour importer correctement :

ProduitFournisseursÉtiquettes
ChaiseIKEAMeuble
Maison du MondeSalon
LampeLeroy MerlinÉclairage
Salon

Plutôt que d'effectuer cette transformation manuellement, voici une méthode simple et rapide avec une macro VBA dans Excel.



Étape 1 : Ajouter une macro VBA à votre classeur Excel

  1. Appuyez sur ALT + F11 pour ouvrir l’éditeur VBA.
  2. Cliquez sur Insertion → Module.
  3. Copiez-collez ce script dans le module :
Sub PreparerImportOdoo()
    Dim cell As Range, valsFournisseurs As Variant, valsEtiquettes As Variant
    Dim i As Long, j As Long, maxLines As Long, lignesAjoutees As Long

    For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
        valsFournisseurs = Split(Cells(i, "B").Value, ",")
        valsEtiquettes = Split(Cells(i, "C").Value, ",")

        maxLines = Application.Max(UBound(valsFournisseurs), UBound(valsEtiquettes))
        lignesAjoutees = maxLines

        If maxLines > 0 Then
            Rows(i + 1 & ":" & i + maxLines).Insert Shift:=xlDown

            For j = 0 To maxLines
                If j <= UBound(valsFournisseurs) Then
                    Cells(i + j, "B").Value = Trim(valsFournisseurs(j))
                Else
                    Cells(i + j, "B").ClearContents
                End If

                If j <= UBound(valsEtiquettes) Then
                    Cells(i + j, "C").Value = Trim(valsEtiquettes(j))
                Else
                    Cells(i + j, "C").ClearContents
                End If

                If j > 0 Then Cells(i + j, "A").ClearContents
            Next j
        End If
    Next i

    MsgBox "Données préparées pour Odoo !"
End Sub


Étape 2 : Utiliser la macro pour transformer vos données

  • Retournez dans Excel.
  • Appuyez sur ALT + F8, sélectionnez PreparerImportOdoo, puis cliquez sur Exécuter.

Vos données seront automatiquement transformées pour être directement compatibles avec les imports Odoo.


Étape 3 : Importer dans Odoo

  • Sauvegardez votre fichier au format .csv ou .xlsx.
  • Rendez-vous dans votre instance Odoo :
    • Par exemple : Produits → Importer → Sélectionnez votre fichier.
  • Associez les colonnes à vos champs Odoo correspondants (produit, fournisseur, étiquettes).
  • Lancez l’importation !


Pourquoi automatiser ?

Cette méthode vous permet d'éviter les erreurs humaines, de gagner du temps précieux et d'assurer une importation parfaite de vos données dans Odoo.

N'hésitez pas à adapter la macro selon vos besoins spécifiques. Bonne importation !


LCSX Tech, Laurent Cossiaux 8 avril 2025
Partager cet article
Empêcher le Calendrier Odoo d'envoyer des emails