diff --git a/__init__.py b/__init__.py
index 31660d6a9650857f10c9dbdcd139145e0897ef6e..93aa2c1f84b46bf5c841c4b4526a02d30c6fe128 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,3 +1,4 @@
 # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
 
 from . import models
+from . import wizard
diff --git a/__manifest__.py b/__manifest__.py
index 8b388b9737a2877f097fa18d2044e6c735f4f2bd..d48ebdb3d9c59eb6dc1c56e72a861d413940dcf3 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -18,6 +18,7 @@
         "security/security_rules.xml",
         "security/ir.model.access.csv",
         "views/assets.xml",
+        "wizard/scop_period_wizard.xml",
         "views/res_partner.xml",
         "views/res_partner_cooperative.xml",
         "views/scop_config_views.xml",
diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml
index 38409d5bc4e961f9ab12d4ec3f9987a742fa3575..de5d55afae3e5fe97c4757c9b7adea456e99f011 100644
--- a/views/res_partner_cooperative.xml
+++ b/views/res_partner_cooperative.xml
@@ -72,6 +72,7 @@
             <field name="arch" type="xml">
                 <form string="Cooperatives">
                     <header>
+                        <button string="Nouvelle période" type="action" name="%(cgscop_partner.scop_period_wizard_create_action)d" class="oe_highlight"/>
                         <field name="project_status" widget="statusbar" options="{'clickable': '0'}" statusbar_visible="1_information,2_pre-diagnostic,3_accompagnement,4_adhesion,5_suivi"/>
                     </header>
                     <sheet>
@@ -348,7 +349,7 @@
                                             <create string="Créer une nouvelle période"/>
                                         </control>
                                     </tree>
-                                    <form readonly="1">
+                                    <form>
                                         <group name="period" string="Période" col="2">
                                             <group>
                                                 <field name="start" readonly="1"/>
diff --git a/wizard/__init__.py b/wizard/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..7a24b1fe0c4972b574271631a82b59d727c98dc9
--- /dev/null
+++ b/wizard/__init__.py
@@ -0,0 +1,4 @@
+# © 2019 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from . import scop_period_wizard
diff --git a/wizard/scop_period_wizard.py b/wizard/scop_period_wizard.py
new file mode 100644
index 0000000000000000000000000000000000000000..8bc31bed02d1aff843cb74cb769d8e22b64d6281
--- /dev/null
+++ b/wizard/scop_period_wizard.py
@@ -0,0 +1,235 @@
+# © 2019 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import api, fields, models
+
+
+class ScopPeiodWizard(models.TransientModel):
+    _name = 'scop.period.wizard'
+    _description = "Création d'une nouvelle période"
+
+    # Default functions
+    @api.model
+    def _default_partner_id(self):
+        return self.env.context.get('active_id')
+
+    @api.model
+    def _default_previous_period_id(self):
+        return self.env['scop.period'].search(
+            [('partner_id', '=', self.env.context.get('active_id')),
+             ('end_reason', '=', False)],
+            limit=1).id
+
+    @api.model
+    def _default_name(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).name
+
+    @api.model
+    def _default_cooperative_form_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).cooperative_form_id
+
+    @api.model
+    def _default_partner_company_type_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).partner_company_type_id
+
+    @api.model
+    def _default_siret(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).siret
+
+    @api.model
+    def _default_street(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).street
+
+    @api.model
+    def _default_street2(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).street2
+
+    @api.model
+    def _default_street3(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).street3
+
+    @api.model
+    def _default_zip(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).zip
+
+    @api.model
+    def _default_zip_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).zip_id
+
+    @api.model
+    def _default_city(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).city
+
+    @api.model
+    def _default_city_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).city_id
+
+    @api.model
+    def _default_state_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).state_id
+
+    @api.model
+    def _default_country_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).country_id
+
+    @api.model
+    def _default_naf_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).naf_id
+
+    @api.model
+    def _default_industry_id(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).industry_id
+
+    @api.model
+    def _default_cae(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).cae
+
+    @api.model
+    def _default_parent_group_name(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).parent_group_name
+
+    @api.model
+    def _default_is_main_location(self):
+        return self.env['res.partner'].browse(
+            self.env.context.get('active_id')).is_main_location
+
+    # Fields common
+    partner_id = fields.Integer('Partner', default=_default_partner_id)
+
+    # Fields previous period
+    previous_period_id = fields.Integer(default=_default_previous_period_id)
+    end_reason = fields.Selection(
+        [('juri', "Modification de la forme juridique"),
+         ('form', "Changement de forme coopérative"),
+         ('acti', "Changement d'activité (NAF)"),
+         ('adr', "Changement d'adresse"),
+         ('nom', "Changement de dénomination sociale"),
+         ('autr', "Autres")],
+        string='Motif')
+    comments = fields.Text('Commentaires')
+
+    # Fields new period
+    start = fields.Date('Début de validité', required=True,
+                        default=fields.Date.today())
+    name = fields.Char('Raison Sociale', required=True, default=_default_name)
+    cooperative_form_id = fields.Many2one(
+        'res.partner.cooperative.form',
+        string="Cooperative form",
+        on_delete='restrict', required=True,
+        default=_default_cooperative_form_id)
+    partner_company_type_id = fields.Many2one(
+        comodel_name='res.partner.company.type',
+        string='Legal Form',
+        track_visibility='onchange',
+        on_delete='restrict', required=True,
+        default=_default_partner_company_type_id)
+    siret = fields.Char(string='SIRET', size=14, required=True,
+                        default=_default_siret)
+    street = fields.Char(default=_default_street)
+    street2 = fields.Char(default=_default_street2)
+    street3 = fields.Char(default=_default_street3)
+    zip = fields.Char(default=_default_zip)
+    zip_id = fields.Many2one('res.city.zip', 'ZIP Location',
+                             default=_default_zip_id)
+    city = fields.Char(default=_default_city)
+    city_id = fields.Many2one('res.city', string='City of Address',
+                              default=_default_city_id)
+    state_id = fields.Many2one(
+        "res.country.state",
+        string='State',
+        ondelete='restrict',
+        domain="[('country_id', '=?', country_id)]",
+        default=_default_state_id)
+    country_id = fields.Many2one(
+        'res.country', string='Country', ondelete='restrict',
+        default=_default_country_id)
+    naf_id = fields.Many2one(
+        'res.partner.naf',
+        string='Code NAF',
+        on_delete='restrict', default=_default_naf_id)
+    industry_id = fields.Many2one('res.partner.industry', 'Industry',
+                                  on_delete='restrict',
+                                  default=_default_industry_id)
+    cae = fields.Boolean("CAE", default=_default_cae)
+    parent_group_name = fields.Char('Coopérative mère',
+                                    default=_default_parent_group_name)
+    is_main_location = fields.Boolean("Est l'établissement principal",
+                                      default=_default_is_main_location)
+
+
+    # Action
+    @api.multi
+    def create_period(self):
+        # Create new period
+        self.env['scop.period'].create({
+            'partner_id': self.partner_id,
+            'start': self.start,
+            'name': self.name,
+            'cooperative_form_id': self.cooperative_form_id.id,
+            'partner_company_type_id': self.partner_company_type_id.id,
+            'siret': self.siret,
+            'street': self.street,
+            'street2': self.street2,
+            'street3': self.street3,
+            'zip': self.zip,
+            'zip_id': self.zip_id.id,
+            'city': self.city,
+            'city_id': self.city_id.id,
+            'state_id': self.state_id.id,
+            'country_id': self.country_id.id,
+            'naf_id': self.naf_id.id,
+            'industry_id': self.industry_id.id,
+            'cae': self.cae,
+            'parent_group_name': self.parent_group_name,
+            'is_main_location': self.is_main_location
+        })
+
+        # Close previous period
+        previous_period = self.env['scop.period'].browse(
+            self.previous_period_id)
+        if previous_period:
+            previous_period.write({
+                'end': self.start,
+                'end_reason': self.end_reason,
+                'comments': self.comments,
+            })
+
+        # Update partner
+        partner = self.env['res.partner'].browse(self.partner_id)
+        partner.write({
+            'name': self.name,
+            'cooperative_form_id': self.cooperative_form_id.id,
+            'partner_company_type_id': self.partner_company_type_id.id,
+            'siret': self.siret,
+            'street': self.street,
+            'street2': self.street2,
+            'street3': self.street3,
+            'zip': self.zip,
+            'zip_id': self.zip_id.id,
+            'city': self.city,
+            'city_id': self.city_id.id,
+            'state_id': self.state_id.id,
+            'country_id': self.country_id.id,
+            'naf_id': self.naf_id.id,
+            'industry_id': self.industry_id.id,
+            'cae': self.cae,
+            'parent_group_name': self.parent_group_name,
+            'is_main_location': self.is_main_location
+        })
diff --git a/wizard/scop_period_wizard.xml b/wizard/scop_period_wizard.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1952922c4db41935a5e0e76f75dedadcf7266a38
--- /dev/null
+++ b/wizard/scop_period_wizard.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<odoo>
+    <!-- WIZARD FORM -->
+    <record id="scop_period_wizard_view_form" model="ir.ui.view">
+        <field name="name">scop.period.wizard.form</field>
+        <field name="model">scop.period.wizard</field>
+        <field name="arch" type="xml">
+            <form string="Nouvelle Période">
+                <group name="period" string="Période" col="2">
+                        <field name="start" required="1"/>
+                        <field name="previous_period_id" invisible="1"/>
+                        <field name="end_reason" attrs="{'required': [('previous_period_id', '!=', 0)], 'invisible': [('previous_period_id', '=', 0)]}"/>
+                        <field name="comments" attrs="{'required': [('previous_period_id', '!=', 0)], 'invisible': [('previous_period_id', '=', 0)]}"/>
+                </group>
+                <group col="2">
+                    <group>
+                        <field name="name" required="1"/>
+                        <field name="cooperative_form_id" required="1"/>
+                        <field name="partner_company_type_id" required="1"/>
+                        <field name="siret" required="1"/>
+                        <field name="street" required="1"/>
+                        <field name="street2"/>
+                        <field name="street3"/>
+                        <field name="zip_id" invisible="1"/>
+                        <field name="zip" required="1"/>
+                        <field name="city_id" invisible="1"/>
+                        <field name="city" required="1"/>
+                        <field name="state_id" invisible="1"/>
+                        <field name="country_id" invisible="1"/>
+                    </group>
+                    <group>
+                        <field name="naf_id" required="1"/>
+                        <field name="cae"/>
+                        <field name="is_main_location"/>
+                        <field name="parent_group_name"/>
+                    </group>
+                </group>
+                <footer>
+                    <button class="btn btn-sm btn-primary" name="create_period" string="Créer" type="object" confirm="Êtes-vous sûr de vouloir créer une nouvelle période ?"/>
+                    <button class="btn btn-sm btn-default" special="cancel" string="Close"/>
+                </footer>
+            </form>
+        </field>
+    </record>
+
+    <record id="scop_period_wizard_create_action" model="ir.actions.act_window">
+        <field name="name">Nouvelle période</field>
+        <field name="type">ir.actions.act_window</field>
+        <field name="res_model">scop.period.wizard</field>
+        <field name="view_mode">form</field>
+        <field name="view_id" ref="scop_period_wizard_view_form"/>
+        <field name="target">new</field>
+    </record>
+
+</odoo>