Bonjour à tous,
Je travaille avec deux fichiers : - l'un en lecture seule qui est un formulaire à remplir pour passer demande (fichier A) - l'autre en lecture partagée pour consulter les demandes passées via le formulaire (fichier B)
Lorsque je suis sur mon fichier A, une fois mon formulaire rempli je valide la demande. J'ai écrit un code d'enregistrement de la demande (Macro Générale) qui est constitué de plusieurs "sous-macro" :
Macro 1 - contrôle des infos du formulaire
Macro 2 - copie des infos du formulaire pour le coller dans le fichier B
Macro 3- clean des infos du formulaire
Je rencontre 1 problème :
Il concerne la Macro 2 dont le code est à la suite, VBA m'affiche le message d'erreur d'exécution 13 incompatibilité de type pour la ligne que j'ai mis en gras. Ca bug en gros quand il s'agit de coller dans le fichier B la donnée du fichier A.
Je m'en remets à vos conseils, j'ai toujours trouvé solution grâce a ce forum.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50Sub enregistrement_formulaire() Dim rngSource As Range Dim premiere_ligne As Long With Worksheets("formulaire") 'fichier formulaire .Unprotect Password:="LEAN" Application.Calculate Set rngSource = Worksheets("formulaire").Range("U2:AE2") Call ouverture_BDD(wb) 'ouverture fichier base de donnée 'COLLER DANS BASE DE DONNEES With wb.Sheets("bdd") premiere_ligne = .Range("A" & Rows.Count).End(xlUp).Row + 1 'calcul de la première ligne vide On Error Resume Next .ShowAllData 'enlever tous les filtres de la base de données On Error GoTo 0 .AutoFilter.Sort.SortFields.Clear .AutoFilter.Sort.SortFields.Add Key:= _ Range("A6:A" & premiere_ligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _ :=xlSortNormal ' trier la base de données dans l'ordre croissant des numéros de demande With ActiveWorkbook.Worksheets("bdd").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With .Cells(premiere_ligne, 1).Value = .Cells(premiere_ligne - 1, 1).Value + 1 'Incrémentation du numéro de la demande .Range("B" & premiere_ligne).Resize(1, rngSource.Count).Value = rngSource.Value 'coller dans le fichier base de données la demande du fichier formulaire wb.Save wb.Close End With End With
Merci d'avance







Répondre avec citation



Partager