Bonjour,
Programmant de façon sporadique sur excel, je dois à chaque fois me replonger dedans quand je dois m'y mettre.
Et là j'ai une question toute bête :
- Une feuille Clients, contenant un numéro, un nom, prénom etc
- Une feuille Liste_Clients, contenant un intitulé (colonne A) et un numéro (colonne B)
Cette feuille Liste_Clients me sert à alimenter mes combobox pour les clients.
En faisant ce code :
Jusque là, tout se passe bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 With Sheets("Liste_Clients").Range("A1").CurrentRegion ReDim TabCli(.Rows.Count, .Columns.Count) TabCli = .Value End With Chk_Nom.Combo_Nom.List = TabCli
C'est quand je veux faire l'inverse, mettre à jour ma feuille "Liste_Clients" à partir de ma feuille "Clients", le tout en passant par un tableau, que ça coinçe :
Je fais :
Je suis obligée de faire un select pour remplir ma plage sinon, en faisant :
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 Dim j, i As Integer Dim nbligne As Long Dim TabCli() As String Dim Activ_sh As Worksheet Dim F_LCli As Worksheet Set Activ_sh = ActiveSheet Set F_LCli = Worksheets("Liste_Clients") ' Recréer Feuille TabCli à chaque modification de la base clients (Nom, Prénom ou Civilité) ' Ou création ou suppression d'un client ' La feuille sera triée par ordre alpha TrierFeuilleAlpha ("Clients") nbligne = Sheets("Clients").Range("A" & Columns(1).Rows.Count).End(xlUp).Row ReDim TabCli(nbligne - 1, 1) For j = 2 To nbligne i = j - 2 TabCli(i, 0) = Sheets("Clients").Range("B" & j).Value & " " & Sheets("Clients").Range("C" & j).Value & " (" & Sheets("Clients").Range("D" & j).Value & ") " & Sheets("Clients").Range("E" & j).Value & " " & Sheets("Clients").Range("H" & j).Value TabCli(i, 1) = Str(Sheets("Clients").Range("A" & j).Value) Next j F_LCli.Columns("A:B").Delete Shift:=xlToLeft F_LCli.Select Range(Cells(1, 1), Cells(UBound(TabCli, 1), UBound(TabCli, 2) + 1)) = TabCli ' Désactiver évènement select feuille Application.EnableEvents = False Activ_sh.Select Application.EnableEvents = True
J'ai une erreur '1004' La méthode 'Range' de l'objet '_Worksheet' a échoué
Code : Sélectionner tout - Visualiser dans une fenêtre à part F_LCli.Range(Cells(1, 1), Cells(UBound(TabCli, 1), UBound(TabCli, 2) + 1)) = TabCli
Si quelqu'un peut me dépanner pour, je suis sure, quelque chose qui doit être gros comme une maison ...
Merci d'avance !!
P.S. le "Activ_sh" ne me sert que justement parce que je suis obligée de faire ce select et j'ai dû rajouter cette partie !!!
Partager