Ok quand j'ai regardé sur internet c'est ce que cru comprendre quand j'ai regardé sur internet.
Du coup est ce que y a une solution envisageable dans mon cas ?
Ok quand j'ai regardé sur internet c'est ce que cru comprendre quand j'ai regardé sur internet.
Du coup est ce que y a une solution envisageable dans mon cas ?
Oui bien sûr, c'est juste que c'est moins intuitif
en gros, les listobjects c'est cool, tu peux naviguer sans te soucier de :
- sa position dans la feuille
- ses dimensions, la zone de ses données, de ses titres, de ses totaux, ses colonnes etc... car le listobject possède des outils et des méthodes pour les manipuler sans avoir à les calculer
donc il faut tout faire à la main
déjà, pour des raisons pratiques, il faut que tes tableaux commencent tous à la même ligne
tu avais parlé de la ligne 9, c'est toujours le cas ?
Oui rien n'a changé, l'entête à la ligne 9 et les données à partir de la ligne 10.
Je suis reparti du classeur que tu as mis dans ton message #14
sans toucher aux feuilles et aux données, j'ai juste modifié un peu le code du userform
voici l'ensemble du module de ton userform après modification, testée et fonctionnelle sur ce fichier là
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
50 Private Sub CommandButton_Fermer_Click() Unload Me End Sub Private Sub ComboBox_ID_Change() With Me ' gestion des identifiants inexistants If .Combobox_ID.ListIndex = -1 Then .Combobox_ID.Value = "" .TextBox_NOM.Value = "" .TextBox_PRENOM.Value = "" .TextBox_RESIDENT.Value = "" Exit Sub End If ' récupération du nom et du prénom lié à l'identifiant choisi dans le menu déroulant .TextBox_NOM.Value = Worksheets("Synthèse").Cells(.Combobox_ID.ListIndex + 10, 4) .TextBox_PRENOM.Value = Worksheets("Synthèse").Cells(.Combobox_ID.ListIndex + 10, 5) .TextBox_RESIDENT.Value = Worksheets("Synthèse").Cells(.Combobox_ID.ListIndex + 10, 7) End With End Sub Private Sub CommandButton_MODIFIER_Click() With Me ' gestion du clic sur le bouton alors qu'on a rien choisi If .Combobox_ID.Value = "" Then MsgBox "Veuillez choisir un identifiant et effectuer les modifications souhaitées" Exit Sub Else ' modification des nom/prénoms dans les 13 tableaux For i = 1 To 13 Worksheets(i).Cells(.Combobox_ID.ListIndex + 10, 4).Value = .TextBox_NOM.Value Worksheets(i).Cells(.Combobox_ID.ListIndex + 10, 5) = .TextBox_PRENOM.Value Worksheets(i).Cells(.Combobox_ID.ListIndex + 10, 7) = .TextBox_RESIDENT.Value Next i End If End With End Sub Private Sub UserForm_Initialize() ' chargement de la liste des identifiants du tableau de synthèse Dim Tablo With Worksheets("Synthèse") Tablo = .Range(.Cells(10, 2), .Cells(.Rows.Count, 2).End(xlUp)) End With Me.Combobox_ID.List = Tablo Application.ScreenUpdating = True End Sub
ça marche parfaitement.
j'attend impatiemment demain pour le testé sur les machine qui tourne sur office 2007 et je vous tiens au courant.
Par avance merci encore.
C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)
Bonjour,
je reviens avec toujours vc mes tableaux. Actuellement j'ai un macro que j'appel sur toutes les feuilles de janvier à la synthèse pour qu'il fasse la copie du mois précédente.
j'aimerai savoir si c'est possible d'avoir un unique macro au niveau de la feuille synthèse par exemple pour qu'il fasse tout en même temps au lieu de le faire mois par mois.
Mon Macro:
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 Option Explicit Sub SoldePrecedant() 'Call ActivationFeuille(ActiveSheet.Name) 'Call DateExerciceF(ActiveSheet.Name) Dim IdCurr, IdPrec As Integer Dim lgDLprec, lgDLcurr As Long Dim wksCurr, wksPrec As Worksheet Application.ScreenUpdating = False Application.Calculation = xlCalculationAutomatic Set wksCurr = ActiveWorkbook.ActiveSheet If wksCurr.Index > 1 Then Set wksPrec = ActiveWorkbook.Worksheets(wksCurr.Index - 1) If wksCurr.Index = 1 Then Set wksPrec = ActiveWorkbook.Worksheets(12) lgDLprec = wksPrec.Range("B65536").End(xlUp).Row lgDLcurr = wksCurr.Range("B65536").End(xlUp).Row If Len(wksCurr.Range("B10").Value) <> 0 And Len(wksCurr.Range("D10").Value) <> 0 Then MsgBox " ATTENTION! La copie de la situation précédante écrase les données de cette feuille", _ vbExclamation, "COPIE DE LA SITUATION PRECEDANTE" If MsgBox("Confirmez-vous cette opération ?", vbYesNo, "COPIE DE LA SITUATION PRECEDENTE ") = vbYes Then wksCurr.Range("B10:H" & lgDLprec) = wksPrec.Range("B10:H" & lgDLprec).Value wksCurr.Range("I10:I" & lgDLprec) = wksPrec.Range("V10:V" & lgDLprec).Value End If Else wksCurr.Range("B10:H" & lgDLprec) = wksPrec.Range("B10:H" & lgDLprec).Value wksCurr.Range("I10:I" & lgDLprec) = wksPrec.Range("V10:V" & lgDLprec).Value End If 'Call formater(wksCurr) 'wksCurr.Range("I10:I" & lgDLcurr + 1).NumberFormat = "# ##0.00" 'wksCurr.Range("H10:H" & lgDLcurr + 1).NumberFormat = "DD/MM/YYYY" 'lockFeuil (wksCurr.Name) Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager