Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

rechercher une feuille

  • Initiateur de la discussion Initiateur de la discussion fred06
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fred06

Guest
Bonjour,
je suis novice en VBA Excel.
J'ai trois feuilles dans mon classeur. Elle se nomment accueil, XXX et YYY. J'aimerai que:
- Si dans la cellule A1 de la feuille accueil la valeur est XXX, les cellules A1 à A8 de la feuille accueil soient copiées dans la feuille XXX dans les cellules A1 à A8.
- Si dans la cellule A1 de la feuille accueil la valeur est YYY, les cellules A1 à A8 de la feuille accueil soient copiées dans la feuille YYY dans les cellules B1 à B8.
Par avance merci
Cordialement.
Fred06
 
Re : rechercher une feuille

Bonjour Fred, le forum

essaie avec cet évènement de feuille (clic droit sur l'onglet, visualiser le code et colle ceci)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
On Error Resume Next ' <==== si ce n'est pas un nom d'onglet valable
Range("A1:A8").Copy Sheets(Range("A1").Value).Range("A1")
End If
End Sub
 
Re : rechercher une feuille

Bonjour,

Une solution à associer à un bouton ou un raccourci clavier
- vas dans VBA par ALT + F11
- menu/insertion/module
- à droite, place cette macro :
Code:
Sub copie()
'Macro par Dan le 08/09/07
Select Case Sheets("feuil1").Range("A1")
Case Is = "feuil2"
Range("A1:A8").Copy Destination:=Sheets("feuil2").Range("A1:A8")
Case Is = "feuil3"
Range("A1:A8").Copy Destination:=Sheets("feuil3").Range("B1:B8")
End Select
End Sub

avec feuil1 comme feuille de référence, feuil2 correspondant à XXX et feuil3 correspondant à YYY

A te lire
Dan
 
Dernière édition:
Re : rechercher une feuille

Salut le forum
Salut bhbh
J'aime pas les "resume next" 😀 donc, autre méthode
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim X As Integer
Dim Flg As Boolean
If Target.Address(0, 0) = "A1" Then
'si la cellule changée est en A1
    If UCase(Target) <> "XXX" And UCase(Target) <> "YYY" Then
    'si majuscule(A1)<> "XXX" et "YYY"
        MsgBox "la feuille " & Target & " n'est pas concernée !", vbCritical + vbOKOnly, _
                "Erreur de nom"
        'on avertit
        Exit Sub
        'on sort
    End If
    Select Case ucas(Target)
    'Mettre Majuscule(A1) en variable Case
        Case "XXX" 'A1="XXX"
            Range("A1:A8").Copy Sheets("XXX").Range("A1")
            'copier A1:A8 dans feuille "XXX" à partir de A1
        Case "YYY" 'A1="YYY"
            Range("A1:A8").Copy Sheets("YYY").Range("B1")
            'copier A1:A8 dans feuille "YYY" à partir de B1
    End Select
End If
End Sub
Je ne vérifie pas la présence des feuille XXX et YYY, puisque c'est la définition du problème 😛

Clic-Droit sur le nom de l'onglet acceuil>>Menu contextuel>>Visualiser le code
Tu colles la macro sur la feuille blanche à droite
tu retournes sur Excel

Tout passage en mode édition d'une cellule de la feuille accueil (double-clic, ou F2) lance automatiquement la macro
elle teste si la cellule concernée est bien la cellule A1
elle compare si elle contient "XXX" ou "YYY"
si ce n'est pas le cas, elle avertit et s'arrête,
sinon elle copie, fonction de ce que tu as demané

A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
836
  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
661
Réponses
3
Affichages
470
Réponses
6
Affichages
321
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…