Multiple double click et variabilisation d'une feuilles
Bonjour à tous,
Je viens vers vous car j'aimerais pouvoir utiliser plusieurs "before double click" sur la même feuille.
Voici la macro que j'utilise actuellement:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell.Address <> "$A$4" Then
Exit Sub
End If
Cancel = True
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Show
Target = .SelectedItems(1)
End With
End SubDonc actuellement en cliquant sur la cellule A4, une boîte de dialogue s'ouvre pour choisir un fichier et que l'URL soit afficher sur ma feuille excel. Ce que j'aimerais pouvoir faire c'est que cela se fasse pour la cellule A6 et A8. Je me suis creusé la tête et je n'arrive à rien et n'ai rien trouvé sur le forum donc si vous pouviez m'aider je vous en serait reconnaisant
Dans un deuxième temps, j'utilise la macro suivante:
Workbooks.Open Filename:= _
NOMCLASSEUR
Sheets("Détail SIREN débiteurs").Select
Selection.CurrentRegion.Copy
Windows(projet).Activate
DétailsReco.Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A2").SelectCette macro me permet d'aller sur un autre classeur dans une feuilles appeler "Détail SIREN débiteurs" de copier le contenu et de le coller sur une feuille de mon nouveau classeur.
J'aimerais pouvoir variabiliser le nom de la feuille "Détail SIREN débiteurs". Dans l'idéal je voudrais que dans mon nouveau classeur, par exemple en cellule B10 mettons, je rentre le nom de ma feuille a sélectionner et donc que cette ligne : Sheets("Détail SIREN débiteurs").Select soit lier au nom entré en cellule B10.
J'éspère avoir été clair sinon n'hésitez pas à me demander des précisions.
Merci d'avance pour vos réponses.
j'aimerais pouvoir faire c'est que cela se fasse pour la cellule A6 et A8.
transforme cela
If (ActiveCell.Address <> "$A$4") or (ActiveCell.Address <> "$A$6")or(ActiveCell.Address <> "$A$8") Then
Exit Sub
End IfSheets("Détail SIREN débiteurs").Select soit lier au nom entré en cellule B10.
comme ca?
feuilleaouvrir=range("B10").value
Sheets(feuilleaouvrir).SelectBonjour,
Pour le pb n°1 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("$A$4,$A$6,$A$8")) Is Nothing Then
Cancel = True
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Show
Target = .SelectedItems(1)
End With
End If
End SubEnsuite, tu pourrais placer en début de code :
Dim nomFeuille as String
nomFeuille=Range("B10")puis remplacer Sheets("Détail SIREN débiteurs").Select par :
Sheets(nomFeuille).Select(salut Zarik)
Merci pour la réactivité !
Du coup j'ai essayé vos propositions, tout fonctionne mais j'ai utilisé cela :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("$A$4,$A$6,$A$8")) Is Nothing Then
Cancel = True
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Show
Target = .SelectedItems(1)
End With
End If
End SubMerci oyobrans, Zarik la solution que tu m'as proposé ne fonctionnait pas, quand je double clique sur mes cellules, le double clique à sa fonction naturelle (peut être à cause du OR qui implique que si c'est différent à A4 alors on revient à la fonction naturelle, donc A6 et A8 sont exclus, si différent à A6 alors on revient à la fonction naturelle donc A4 et A8 sont exclus etc ...)
Pour le 2ème problème j'ai fait un mix de vos propositions:
Dim nomFeuille as String
nomFeuille=Range("B10").value et
Sheets(nomFeuille).Select
Merci encore à vous deux
Zarik la solution que tu m'as proposé ne fonctionnait pas
il manquais peut etre une parenthese regroupant tt les or
If ((ActiveCell.Address <> "$A$4") or (ActiveCell.Address <> "$A$6")or(ActiveCell.Address <> "$A$8")) ThenMais si t'a trouvé ton bonheur^^
(salut Zarik)
Salut Salut
Re,
Pas un problème de parenthèses, si on clique sur A8, ce qui est vérifié en premier est si la cellule cliquée n'est pas A4 (ce qui est vrai) ou n'est pas A6, vrai aussi, puis A8 avec faux, donc vrai ou vrai ou faux renvoie bien vrai et ça déclenche l'Exit Sub. Il ne faut pas chercher à quitter prématurément la procédure mais comment s'y engager. On aurait pu avoir :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (ActiveCell.Address = "$A$4") Or (ActiveCell.Address = "$A$6") Or (ActiveCell.Address = "$A$8") Then
Cancel = True
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Show
Target = .SelectedItems(1)
End With
End If
End SubLa sortie se fait toute seule si la condition n'est pas respectée.
Ok j'avais pris la condition a l'envers...Merci pour la correction
Bonjour,
J'avais le même problème et maintenant tout fonctionne.
Merci encore et passez une bonne journée.
Bien Cordialement.