Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2011, 14h14   #1
Invité de passage
 
Homme
Inscription : juillet 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 1
Points : 0
Points : 0
Par défaut Nouvel onglet TCD paramétrable

Bonjour à tous,

je souhaiterais savoir s'il est techniquement possible (et alors comment) sous Excel 2003 de paramétrer l'onglet qui apparaît quand on clique sur une cellule d'un TCD.
En cliquant sur une cellule, on a accès à la base de données concernée dans un nouvel onglet nommé 'Feuil1', est-ce qu'il serait possible de lui attribuer automatiquement un nom, voire le nom des cellules concernées par le double-clic ?

Merci d'avance à toute suggestion
air2d2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 11h33   #2
Membre confirmé
 
Homme Denis Morena
Technicien qualité et métrologie industrielle
Inscription : avril 2011
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Denis Morena
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Technicien qualité et métrologie industrielle
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 115
Points : 221
Points : 221
Bonjour,

c'est possible... Voici UNE solution...

Créer un onglet TEMPO où les informations vont s'y mettre temporairement, ensuite créer l'onglet du nom de la cellule de gauche où tu double clic, les informations ce copie automatiquement dans l'onglet qui possède le nom EXACT de la case correspondante...

(Ici l'onglet où se trouve le TCD est nommé "TCD")

A mettre dans un Module standard :

Code :
Public Generation As Boolean
A mettre dans l'événement de la feuille concernée :

Code :
1
2
3
4
5
6
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
    If Target.Column = 3 Then Generation = True
    'Adater la colonne à ton TCD ici la colonne utilisé est la C !
 
End Sub
et dans l'évènement du classeur :

Code :
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
Private Sub Workbook_NewSheet(ByVal Sh As Object)
 
If Generation = True Then
 
    Application.ScreenUpdating = False
 
    Sheets("TEMPO").Visible = True
 
    Sheets("TCD").Select
    Selection.Offset(0, -1).Select
    Dim NomCells
    NomCells = ActiveCell.Value
 
    Sheets("TEMPO").Rows("1:1000").Delete
    Sh.[A1].CurrentRegion.Copy Sheets("TEMPO").[A1]
    Application.DisplayAlerts = False
    Sh.Delete
    Generation = False
 
    Sheets("TEMPO").Select
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
 
    'Recherche du dernier élément du tableau TEMPO
    Dim a As Integer
    a = 3
    While Sheets("TEMPO").Cells(a, 1) <> ""
        a = a + 1
    Wend
 
    a = a - 1
 
'Recherche du dernier élément du tableau Laser actuel
    Dim b As Integer
    b = 3
    While Sheets(NomCells).Cells(b, 2) <> ""
        b = b + 1
    Wend
 
    b = b - 1
 
'Comparaison des lignes et copie des lignes manquantes
 
    Dim i, j As Integer
    Dim d As Integer
    Dim x, y As Integer
    Dim valeur, final As Boolean
 
 
    d = 3
 
For i = 0 To (a - 3)
 
    x = a - i
    final = True
 
    For j = 0 To (b - 3)
 
        y = b - j
 
        If Not ((Sheets("TEMPO").Cells(x, 4) = Sheets(NomCells).Cells(y, 4)) And (Sheets("TEMPO").Cells(x, 1) = Sheets(Laser).Cells(y, 1)) And (Sheets("TEMPO").Cells(x, 2) = Sheets(Laser).Cells(y, 2)) And (Sheets("TEMPO").Cells(x, 3) = Sheets(Laser).Cells(y, 3)) And (Sheets("TEMPO").Cells(x, 5) = Sheets(Laser).Cells(y, 5))) Then
            valeur = True
        Else:
            valeur = False
        End If
 
        final = final And valeur
 
    Next
 
    If final Then
        Sheets("TEMPO").Activate
        Range("A" & x & ":L" & x).Select
        Selection.Copy
 
        While Sheets(NomCells).Cells(d, 2) <> ""
             d = d + 1
        Wend
 
        Sheets(NomCells).Activate
        Range("A" & d).Select
        ActiveSheet.Paste
        Selection.Font.ColorIndex = 3
        Selection.Font.Bold = True
 
    End If
 
    Sheets("TEMPO").Activate
    Range("A" & x & ":L" & x).Select
    Selection.ClearContents
 
    Next
 
    Sheets("TCD").Select
    Range("A1").Select
    Sheets(NomCells).Select
    Range("A1").Select
 
    Sheets("TEMPO").Visible = False
    Application.ScreenUpdating = True
 
End If
 
End Sub


Je sais pas exactement se que tu veut faire, ici les données sont actualiser. Envoi moi ton fichier avec plus d'explication si tu veut quelque chose de plus prècis...

N'oublie pas de créer tes deux onglets avant le double clic sinon la macro ne marchera pas, je sais pas si j'ai était assez clair...

Sinon je pense qu'avec le code précèdent tu peut faire se que tu a besoin...
White Mibu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 22h59   #3
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 583
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 583
Points : 885
Points : 885
Bonjour

Question intéressante : "voire le nom des cellules concernées par le double-clic"

Dans un TCD on peut cliquer à n'importe quel niveau et si le TCD est complexe, le nom de la sélection peut correspondre à une combinatoire de plusieurs champs de page, ligne et colonne ce qui nécessite d'explorer la logique du TCD et peut donner un nom très long de type
Vendeur Truc, Client Machin, Produit Toto, Famille de produits Titi
qui dépasse la longueur autorisée pour nommer un onglet (31 caractères).
Il faudrait donc préciser ce que tu veux récupérer.

La réponse de White Mibu répond bien à l'évènement double clic et à l'événement de création d'une nouvelle feuille mais le code ne semble pas traiter le TCD (ne marche pas sur un TCD chez moi).
C'est cependant une bonne base de départ...
78chris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 09h16   #4
Membre confirmé
 
Homme Denis Morena
Technicien qualité et métrologie industrielle
Inscription : avril 2011
Messages : 115
Détails du profil
Informations personnelles :
Nom : Homme Denis Morena
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Technicien qualité et métrologie industrielle
Secteur : Industrie

Informations forums :
Inscription : avril 2011
Messages : 115
Points : 221
Points : 221
C'est UNE solution... moi j'ai fait comme ça ! envoi ton fichier en MP si tu veut que j'regarde !

Enfaite moi dans mon TCD la case où je double clic concerne la case à gauche du double clic, mais après en adaptant la macro à ton TCD tu doit pouvoir trouver une solution...
White Mibu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h30.


 
 
 
 
Partenaires

Hébergement Web