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 :
Produit | Fournisseurs | Étiquettes |
---|---|---|
Chaise | IKEA, Maison du Monde | Meuble, Salon |
Lampe | Leroy Merlin | Éclairage, Salon |
Mais Odoo a besoin du format suivant pour importer correctement :
Produit | Fournisseurs | Étiquettes |
Chaise | IKEA | Meuble |
Maison du Monde | Salon | |
Lampe | Leroy Merlin | Éclairage |
Salon |
Plutôt que d'effectuer cette transformation manuellement, voici une méthode simple et rapide avec une macro VBA dans Excel.
Depuis Odoo 18, il n'est plus nécessaire de passer par cette étape. L'outil d'import supporte maintenant nativement une liste séparée par une virgule, ce qui facilite grandement le travail d'import !
Étape 1 : Ajouter une macro VBA à votre classeur Excel
- Appuyez sur ALT + F11 pour ouvrir l’éditeur VBA.
- Cliquez sur Insertion → Module.
- 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 !