![]() |
|
Forum
|
|
|
#1 (permalink) | ||
|
XLDnaute Nouveau
Date d'inscription: août 2006
Messages: 39
|
Bonjour à tous,
ça faisait un petit moment que j'avais pas fait de macro, et je viens de me relancer dedans pour un besoin personnel. Donc entrons dans le vif du sujet, avec la macro ci-dessous (dans le workbook du fichier), je copie grâce à un double-clique le contenu d'une cellule de la feuille "Cat 01" vers une cellule précise dans la feuille "Liste": Citation:
Ce que j'aimerais donc faire maintenant, est que si je double-clique sur une autre cellule (toujours la même colonne) de la feuille "Cat 01", que ça se rajoute à la suite dans la cellule ciblée de la feuille "Liste" pour avoir comme résultat dans la cellule: Citation:
![]() |
||
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 726
|
Bonjour
je ne sais pas si j'ai tout compris ![]() Code:
If ActiveSheet.Name = "Cat 01" Then
if Sheets("Liste").Cells(position + 2, 3) = "" then
Sheets("Liste").Cells(position + 2, 3) = ActiveCell
else
Sheets("Liste").Cells(position + 2, 3) = Sheets("Liste").Cells(position + 2, 3) & ";" & ActiveCell
end if
end if
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci |
|
|
|
|
|
#4 (permalink) | ||
|
XLDnaute Nouveau
Date d'inscription: août 2006
Messages: 39
|
Bonjour à tous,
Je reviens sur ce post, car je souhaiterai faire une petite évolution de la macro de Wilfried (ou pas un autre moyen). Je m'explique, pour le moment avec la macro que m'a donné Wilfried, en double-cliquant sur n'importe quelle cellule de la feuille "Cat 01" ou j'ai une liste de configuration, je copie le contenu + ";" dans une cellule précise de la feuille "Liste" Ce qui me donne comme résultat (par exemple) : Citation:
ex: ____A____|____B____|____C____|____D____ config1___|Param1___|Param2___|Param3___ config2___|_________|Param4___|Param5___ config3___|_________|_________|Param6___ (les "_", c'est juste pour que ça ressemble à quelques cellules) Ce que j'aimerais donc faire au lieu de copier simplement la valeur "config1"+";" en double-cliquant dessus, est que ça me fasse une copie des paramètres correspondant (mais pas forcément toutes les colonnes, juste les colonnes B et D par exemple) pour que ça me donne le résultat suivant sur ma feuille "Liste" (cellule précise toujours): Citation:
Merci d'avance pour vos réponses. |
||
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 726
|
re:
un fichier exemple est necessaire, plusieurs solutions sont possibles et je n'ai pas encore tout forcemment compris. dans l'exemple que tu nous donnes, il n'y a pas la config2.......... ![]() @ te lire
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci |
|
|
|
|
|
#6 (permalink) | |
|
XLDnaute Nouveau
Date d'inscription: août 2006
Messages: 39
|
Citation:
Donc tout simplement parceque dans cette hypothèse, je n'ai pas double-cliqué sur config2, j'ai juste doublié cliqué sur config1 et config3. Pour le fichier, j'essaye de faire ça rapidement |
|
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 726
|
re:
voici le code Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim drapeau As Boolean, i As Integer, ok As Boolean
drapeau = False: ok = False
If ActiveSheet.Name = "Config" Then
Cancel = True
If Sheets("Liste").Range("D10") > "" Then Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & ";"
For i = 2 To ActiveSheet.Range("IV" & Target.Row).End(xlToLeft).Column
If i = 2 Then Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & Target & "("
If ActiveSheet.Cells(Target.Row, i) > "" Then
If ok = True Then Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & ";"
ok = True
Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & ActiveSheet.Cells(Target.Row, i)
End If
Next i
Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & ")"
End If
End Sub
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: août 2006
Messages: 39
|
Merci beaucoup Wilfried encore une fois
![]() Mais, tous les paramètres en face de la config sont copiés ce qui n'est pas tout à fait ce que je souhaiterai. Est-ce qu'il y a possibilité de préciser dans la macro les colonnes paramètres que je veux copier ? par exemple seulement les paramètres de la colonne B et D (j'ignore la C même s'il y a un paramètre) sont copiés lorsque je double-clique sur une de mes config. |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 726
|
re:
les colonnes à recuperer sont elles toujours les memes ou tu peux en desirer d'autres à un certain moment ? Voici un essai avec masquage des colonnes non voulues
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci Dernière modification par wilfried_42 ; 26/05/2008 à 06h06. |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: août 2006
Messages: 39
|
Merci Wilfried, mais effectivement, il pourra y en avoir d'autre, ce sertait plus simple pour moi, de pouvoir préciser dans la macro quelles colonnes seront à ignorer, c'est peut-être plus dur à mettre en oeuvre dans la macro ?
|
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: novembre 2006
Localisation: Saint etienne
Version Excel : Excel XP (PC)
Messages: 3 726
|
re:
voici la macro, en rouge les modifs Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim drapeau As Boolean, i As Integer, ok As Boolean
drapeau = False: ok = False
If ActiveSheet.Name = "Config" Then
Cancel = True
If Sheets("Liste").Range("D10") > "" Then Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & ";"
For i = 2 To ActiveSheet.Range("IV" & Target.Row).End(xlToLeft).Column
If i = 2 Then Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & Target & "("
select case i
case 3,4 ' Liste des colonnes à ignorer
case else
If ActiveSheet.Cells(Target.Row, i) > "" Then
If ok = True Then Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & ","
ok = True
Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & ActiveSheet.Cells(Target.Row, i)
End If
End select
Next i
Sheets("Liste").Range("D10") = Sheets("Liste").Range("D10") & ")"
End If
End Sub
__________________
salutations Wilfried Plus j'apprends, plus je sais....... plus je sais que je ne sais rien. Venez visiter mon zoo : Cliquez ici il est si petit, un petit click quotidien merci |
|
|
|
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Couper Coller un mot présent deux fois dans meme cellule | clastelau | Forum Excel | 2 | 27/02/2008 16h37 |
| Coller les valeurs de plusieurs Combobox dans une même cellule | B52 | Forum Excel | 5 | 02/02/2008 12h56 |
| Coller deux valeurs dans la même cellule | tyno42 | Forum Excel | 3 | 05/06/2007 21h02 |
| plusieurs lignes dans meme cellule | Lemidi34 | Forum Excel | 7 | 09/03/2006 13h22 |
| Plusieurs commentaires dans une même cellule | guillaume | Forum Excel Downloads - Archives | 4 | 14/02/2002 12h17 |