Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment double-cliquer sur une cellule pour ouvrir une feuille de calcul spécifiée dans Excel?

Voulez-vous accéder rapidement à une feuille de calcul spécifiée dans un classeur Excel? Cet article fournit une méthode VBA pour ouvrir une feuille de calcul spécifiée en double-cliquant sur une certaine cellule dans Excel.

Double-cliquez sur une cellule pour ouvrir une feuille de calcul spécifiée avec le code VBA


Double-cliquez sur une cellule pour ouvrir une feuille de calcul spécifiée avec le code VBA


Veuillez procéder comme suit pour ouvrir une feuille de calcul spécifiée en double-cliquant sur une cellule dans Excel.

1. Cliquez avec le bouton droit sur l'onglet de feuille qui contient la cellule que vous souhaitez ouvrir la feuille de calcul en cliquant dessus. Et puis cliquez Voir le code dans le menu contextuel. Voir la capture d'écran:

2. Dans l'ouverture Microsoft Visual Basic pour applications fenêtre, copiez le code VBA suivant dans la fenêtre Code.

Code VBA: double-cliquez sur la cellule pour ouvrir une feuille de calcul spécifiée dans Excel

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updated by Extendoffice 20180822
Dim xArray, xAValue As Variant
Dim xFNum As Long
Dim xStr, xStrRg, xStrSheetName As String
xRgArray = Array("A1;Sheet2", "A12;Sheet3", "A4;Sheet4", "A100;Sheet5")
On Error Resume Next
For xFNum = LBound(xRgArray) To UBound(xRgArray)
xStr = ""
xStr = xRgArray(xFNum)
xAValue = ""
xAValue = Split(xStr, ";")
xStrRg = ""
xStrRg = xAValue(0)
xStrSheetName = ""
xStrSheetName = xAValue(1)
If Not Intersect(Target, Range(xStrRg)) Is Nothing Then
Sheets(xStrSheetName).Activate
End If
Next
End Sub

Note: Dans le code VBA, "A1; Sheet2""A12; Sheet3""A4; Sheet4""A100; Sheet5"signifie que la cellule de clic de souris A1 ouvrira Sheet2, double-cliquez sur A2 pour ouvrir Sheet3 ..., modifiez-les selon vos besoins.

3. appuie sur le autre + Q clés ensemble pour fermer le Microsoft Visual Basic pour applications fenêtre.

À partir de maintenant, lorsque vous double-cliquez sur la cellule A1 dans la feuille de calcul en cours, la feuille de calcul spécifiée sera immédiatement activée.


Articles connexes:



Outils de productivité recommandés

Office Tab

étoile d'or1 Apportez des onglets pratiques à Excel et à d'autres logiciels Office, tout comme Chrome, Firefox et Internet Explorer.

Kutools for Excel

étoile d'or1 Incroyable! Augmentez votre productivité dans les minutes 5. Ne nécessite pas de compétences particulières, économisez deux heures par jour!

étoile d'or1 300 Nouvelles fonctionnalités pour Excel, rendent Excel facile et puissant:

  • Fusionner des cellules / lignes / colonnes sans perdre de données.
  • Combiner et consolider plusieurs feuilles et classeurs.
  • Comparez les gammes, copiez plusieurs gammes, convertissez le texte en date, l'unité et la conversion de devise.
  • Compter par couleurs, sous-totaux de recherche, tri avancé et super filtre,
  • Plus Sélectionner / Insérer / Supprimer / Texte / Format / Lier / Commenter / Classeurs / Feuilles de calcul Outils ...

Capture d'écran de Kutools pour Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Neil · 1 months ago
    Hi how can i extend my array? it stucks already and i cannot add more of this because it limits to col 1024 only for that line. pls help

    xRgArray = Array("A2;Sheet2", "A3;Sheet3", "A4;Sheet4", "A5;Sheet5")
  • To post as a guest, your comment is unpublished.
    James · 7 months ago
    After you get to the desired sheet. Is there a way to copy information from a cell in that sheet and automatically go back to the cell I double clicked on originally in the first sheet?
    • To post as a guest, your comment is unpublished.
      crystal · 6 months ago
      Hi James
      You need to manually click the original worksheet tab to back to it. Sorry can't take this into consideration.
  • To post as a guest, your comment is unpublished.
    Guest · 1 years ago
    Is there a way to do multiple codes for one tab? such as clicking on another cell to jump into another worksheet.

    How would that code look like?
    • To post as a guest, your comment is unpublished.
      crystal · 8 months ago
      Good day,

      The below VBA code can help you to solve the problem. Thanks for your comment.

      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Dim xArray As Variant
      Dim xFNum As Long
      Dim xStr, xStrRg, xStrSheetName As String
      xRgArray = Array("A2;Sheet2", "A3;Sheet3", "A4;Sheet4", "A5;Sheet5")
      On Error Resume Next
      For xFNum = LBound(xRgArray) To UBound(xRgArray)
      xStr = ""
      xStr = xRgArray(xFNum)
      xStrRg = ""
      xStrRg = Left(xStr, 2)
      xStrSheetName = ""
      xStrSheetName = Right(xStr, Len(xStr) - 3)
      If Not Intersect(Target, Range(xStrRg)) Is Nothing Then
      Sheets(xStrSheetName).Activate
      End If
      Next
      End Sub
      • To post as a guest, your comment is unpublished.
        SG · 8 months ago
        Hi, In the line that states xStrRg = Left(xStr, 2), this picks up the cell if its a single number cell i.e. A1, A2, A3. but not if its A11, or A111. how do i write the code to allow me to use cells A1, A11, and A111?

        Hope this makes sense, i'm not particularly technical!!
        • To post as a guest, your comment is unpublished.
          crystal · 8 months ago
          Good Day,
          The code has been optimized again. Please have a try and thanks for your comment.

          Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
          Dim xArray, xAValue As Variant
          Dim xFNum As Long
          Dim xStr, xStrRg, xStrSheetName As String
          xRgArray = Array("A1;Sheet2", "A12;Sheet3", "A4;Sheet4", "A100;Sheet5")
          On Error Resume Next
          For xFNum = LBound(xRgArray) To UBound(xRgArray)
          xStr = ""
          xStr = xRgArray(xFNum)
          xAValue = ""
          xAValue = Split(xStr, ";")
          xStrRg = ""
          xStrRg = xAValue(0)
          xStrSheetName = ""
          xStrSheetName = xAValue(1)
          If Not Intersect(Target, Range(xStrRg)) Is Nothing Then
          Sheets(xStrSheetName).Activate
          End If
          Next
          End Sub