diff --git a/src/frontend/app/administration/user/import/users-import.component.html b/src/frontend/app/administration/user/import/users-import.component.html
index 2be675a6ad3ba30f9acade915994ea9b8e570ded..6239d9ac388c00c83d5202099e0daedcadbe2513 100644
--- a/src/frontend/app/administration/user/import/users-import.component.html
+++ b/src/frontend/app/administration/user/import/users-import.component.html
@@ -4,11 +4,12 @@
         <mat-toolbar class="import-tool" [class.hide]="csvData.length === 0 || loading">
             <input type="file" name="files[]" #uploadFile id="uploadFile" (change)="uploadCsv($event)" accept=".csv"
                 style="flex:1;">
-            <span><i class="fa fa-user"></i>&nbsp;Utilisateurs du fichier : <b color="primary">{{countAll}}</b>
-                ({{countAll < 10 ? countAll : '10' }} prévisualisées)</span>
             <span class="example-spacer"></span>
-            <span style="flex:1;"><i class="fa fa-user-plus"></i>&nbsp;Ajouts : <b color="primary">{{countAdd}}</b></span>
-            <span style="flex:1;"><i class="fa fa-user-edit"></i>&nbsp;Modifications : <b color="primary">{{countUp}}</b></span>
+            <span style="flex:1;text-align: right;"><i class="fa fa-users" color="primary"></i>&nbsp;Utilisateurs du fichier : <b color="primary">{{countAll}}</b>
+                <ng-container *ngIf="countAll > 10">&nbsp;(10 prévisualisées)</ng-container>
+            </span>
+            <span style="flex:1;text-align: right;"><i class="fa fa-user-plus" color="primary"></i>&nbsp;Ajouts : <b color="primary">{{countAdd}}</b></span>
+            <span style="flex:1;text-align: right;"><i class="fa fa-user-edit" color="primary"></i>&nbsp;Modifications : <b color="primary">{{countUp}}</b></span>
         </mat-toolbar>
         <ng-container *ngIf="loading; else elseTemplate">
             <div class="loader">
@@ -33,6 +34,7 @@
                                 style="width: 80px !important;">
                                 <mat-select [(ngModel)]="associatedColmuns[column]"
                                     (selectionChange)="changeColumn(column, $event.value)">
+                                    <mat-option value=""></mat-option>
                                     <mat-option *ngFor="let col of csvColumns" [value]="col">
                                         {{col}}
                                     </mat-option>
diff --git a/src/frontend/app/administration/user/import/users-import.component.ts b/src/frontend/app/administration/user/import/users-import.component.ts
index d10b13d7ecc110c44b2a95b6d8d55ffdb00845f0..d549a3c639ab22c0efebcc0bb8f338a6dbce1843 100644
--- a/src/frontend/app/administration/user/import/users-import.component.ts
+++ b/src/frontend/app/administration/user/import/users-import.component.ts
@@ -55,7 +55,8 @@ export class UsersImportComponent implements OnInit {
         console.log(coldb);
         console.log(colCsv);
         this.userData = [];
-        for (let index = 0; index < 10; index++) {
+        const limit = this.csvData.length < 10 ? this.csvData.length : 10;
+        for (let index = 0; index < limit; index++) {
             const data = this.csvData[index];
             this.userData.push({
                 'id': coldb === 'id' ? data[this.csvColumns.filter(col => col === colCsv)[0]] : data[this.associatedColmuns['id']],
@@ -88,9 +89,9 @@ export class UsersImportComponent implements OnInit {
                     let dataCol = [];
                     let objData = {};
 
-                    this.countAll = rawCsv.length - 1;
+                    this.countAll = rawCsv.length - 2;
 
-                    for (let index = 1; index < rawCsv.length; index++) {
+                    for (let index = 1; index < rawCsv.length - 1; index++) {
                         objData = {};
                         dataCol = rawCsv[index].split(';').map(s => s.replace(/"/gi, '').trim());
                         dataCol.forEach((element: any, index2: number) => {
@@ -99,7 +100,6 @@ export class UsersImportComponent implements OnInit {
                         this.csvData.push(objData);
                     }
                     this.initData();
-
                     this.countAdd = this.csvData.filter((data: any) => this.functionsService.empty(data[this.associatedColmuns['id']])).length;
                     this.countUp = this.csvData.filter((data: any) => !this.functionsService.empty(data[this.associatedColmuns['id']])).length;
                 } else {
@@ -114,7 +114,8 @@ export class UsersImportComponent implements OnInit {
 
     initData() {
         this.userData = [];
-        for (let index = 0; index < 10; index++) {
+        const limit = this.csvData.length < 10 ? this.csvData.length : 10;
+        for (let index = 0; index < limit; index++) {
             const data = this.csvData[index];
             this.associatedColmuns['id'] = this.csvColumns[0];
             this.associatedColmuns['user_id'] = this.csvColumns[1];
@@ -149,35 +150,43 @@ export class UsersImportComponent implements OnInit {
 
     onSubmit() {
         console.log('test');
-        const dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: 'Importer', msg: 'Voulez-vous importer <b>' + this.countAll + '</b> utilisateurs ?<br/>(<b>' + this.countAdd + '</b> créations et <b>' + this.countUp + '</b> modifications)' } });
+        const dataToSend: any[] = [];
+        let dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: 'Importer', msg: 'Voulez-vous importer <b>' + this.countAll + '</b> utilisateurs ?<br/>(<b>' + this.countAdd + '</b> créations et <b>' + this.countUp + '</b> modifications)' } });
         dialogRef.afterClosed().pipe(
             filter((data: string) => data === 'ok'),
             tap(() => {
                 this.loading = true;
-                const dataToSend: any[] = [];
-                this.csvData.forEach(element => {
-                    this.associatedColmuns['id'] = this.csvColumns[0];
-                    this.associatedColmuns['user_id'] = this.csvColumns[1];
-                    this.associatedColmuns['firstname'] = this.csvColumns[2];
-                    this.associatedColmuns['lastname'] = this.csvColumns[3];
-                    this.associatedColmuns['mail'] = this.csvColumns[4];
-                    this.associatedColmuns['phone'] = this.csvColumns[5];
-
+                this.csvData.forEach((element: any) => {
                     dataToSend.push({
-                        'id': element[this.csvColumns[0]],
-                        'user_id': element[this.csvColumns[1]],
-                        'firstname': element[this.csvColumns[2]],
-                        'lastname': element[this.csvColumns[3]],
-                        'mail': element[this.csvColumns[4]],
-                        'phone': element[this.csvColumns[5]]
+                        'id': element[this.associatedColmuns['id']],
+                        'user_id': element[this.associatedColmuns['user_id']],
+                        'firstname': element[this.associatedColmuns['firstname']],
+                        'lastname': element[this.associatedColmuns['lastname']],
+                        'mail': element[this.associatedColmuns['mail']],
+                        'phone': element[this.associatedColmuns['phone']]
                     });
                 });
                 console.log(dataToSend);
             }),
-            /*exhaustMap(() => this.http.delete(`../rest/listTemplates/${this.currentEntity.listTemplate.id}`)),
+            exhaustMap(() => this.http.put(`../rest/importUsers`, { users: dataToSend })),
+            tap((data: any) => {
+                /*let text = '';
+                if (this.functionsService.empty(data.error) ) {
+                    text = `<br/>${data.error.count} en erreur  : <ul>`;
+                    data.errors.lines.forEach(element => {
+                        text  += `<li> ligne : ${element}</li>`;
+                    });
+                    text += '</ul>';
+                }
+                dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: 'Importer', msg: '<b>' + data.success + '</b> / <b>' + this.countAll + '</b> utilisateurs importés.' + text } });
+                */
+                // FOR TEST
+                dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: 'Importer', msg: 'success!' } });
+            }),
+            exhaustMap(() => dialogRef.afterClosed()),
             tap(() => {
-
-            }),*/
+                this.dialogRef.close('success');
+            }),
             catchError((err: any) => {
                 this.loading = false;
                 this.notify.handleSoftErrors(err);
diff --git a/src/frontend/app/administration/user/users-administration.component.ts b/src/frontend/app/administration/user/users-administration.component.ts
index 8fc8bb5954def22465c53e074ad697cc191cbc4f..370e18f3e7611fbb50e1629016db32215ee9a2be 100755
--- a/src/frontend/app/administration/user/users-administration.component.ts
+++ b/src/frontend/app/administration/user/users-administration.component.ts
@@ -13,6 +13,8 @@ import { of } from 'rxjs/internal/observable/of';
 import { catchError } from 'rxjs/internal/operators/catchError';
 import { UsersImportComponent } from './import/users-import.component';
 import { UsersExportComponent } from './export/users-export.component';
+import { tap } from 'rxjs/internal/operators/tap';
+import { filter } from 'rxjs/operators';
 
 @Component({
     templateUrl: 'users-administration.component.html',
@@ -72,9 +74,26 @@ export class UsersAdministrationComponent implements OnInit {
 
         this.user = this.headerService.user;
         this.loading = true;
+        this.getData();
+    }
 
-        this.http.get('../rest/users')
-            .subscribe((data: any) => {
+    setDatasource() {
+        setTimeout(() => {
+            this.dataSource = new MatTableDataSource(this.data);
+            this.dataSource.paginator = this.paginator;
+            this.dataSource.sortingDataAccessor = this.functions.listSortingDataAccessor;
+            this.sort.active = 'user_id';
+            this.sort.direction = 'asc';
+            this.dataSource.sort = this.sort;
+        }, 0);
+    }
+
+    getData() {
+        this.webserviceAccounts = [];
+        this.noWebserviceAccounts = [];
+        this.data = [];
+        this.http.get('../rest/users').pipe(
+            tap((data: any) => {
                 this.data = data['users'];
                 this.data.forEach(element => {
                     element.statusLabel = this.lang['user' + element.status];
@@ -92,20 +111,12 @@ export class UsersAdministrationComponent implements OnInit {
 
                 this.loading = false;
                 this.setDatasource();
-            }, (err) => {
-                this.notify.handleErrors(err);
-            });
-    }
-
-    setDatasource() {
-        setTimeout(() => {
-            this.dataSource = new MatTableDataSource(this.data);
-            this.dataSource.paginator = this.paginator;
-            this.dataSource.sortingDataAccessor = this.functions.listSortingDataAccessor;
-            this.sort.active = 'user_id';
-            this.sort.direction = 'asc';
-            this.dataSource.sort = this.sort;
-        }, 0);
+            }),
+            catchError((err: any) => {
+                this.notify.handleSoftErrors(err);
+                return of(false);
+            })
+        ).subscribe();
     }
 
     activateUser(user: any) {
@@ -419,12 +430,16 @@ export class UsersAdministrationComponent implements OnInit {
             panelClass: 'maarch-full-height-modal'
         });
 
-        /*dialogRef.afterClosed().pipe(
+        dialogRef.afterClosed().pipe(
+            filter((data: any) => data === 'success'),
+            tap(() => {
+                this.getData();
+            }),
             catchError((err: any) => {
                 this.notify.handleSoftErrors(err);
                 return of(false);
             })
-        ).subscribe();*/
+        ).subscribe();
     }
 
     openUsersExportModal() {