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 Sub

Donc 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").Select

Cette 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 If

Sheets("Détail SIREN débiteurs").Select soit lier au nom entré en cellule B10.

comme ca?

feuilleaouvrir=range("B10").value
Sheets(feuilleaouvrir).Select

Bonjour,

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 Sub

Ensuite, 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 Sub

Merci 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")) Then

Mais 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 Sub

La 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.

Rechercher des sujets similaires à "multiple double click variabilisation feuilles"