VBA - Code qui ne marche pas

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 !

wizard0147

XLDnaute Occasionnel
Bonjour à tous,

Débutant sur excel, je cherche à coder un truc mais ça ne se passe pas comme prévu 🙂

Voici le code que j'ai commencé :


Sub Worksheet_Change(ByVal Target As Range)
'
Dim Z As Variant
'

If Target.Address = "$C$4" Then

Select Case Target
Case "AAAAA"
Z = "XXX" Or "YYY"

Case "BBBBB"
Z = "None"

Case "CCCCC"
Z = "XXX" Or "YYY"

Case "DDDDD"
Z = "=Database§$D$61😀atabase!$D$68"

Case "EEEEE"
Z = "None"

Case "FFFFF"
Z = "XXX" Or "YYY" Or "ZZZ"

End Select

With Range("C6")
.ClearContents

With .Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlBetween, Formula1:=Z
End With
End With

End If

---------------------------------------

If C4 = "BBBBB" And C6 = "Ce qui a été choisie au dessus" Then

With Range("C8")
.ClearContents

With .Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="=Database!$A$3😀atabase!$A$3"

End With
End With
End If


If C4 = "Sethness-Roquette" And C6 = "Aromatic Caramel" Then

With Range("C8")
.ClearContents

With .Validation
.Delete
.Add Type:=xlValidateList, Operator:=xlBetween, Formula1:="=Database!$A$6😀atabase!$A$12"

End With
End With
End If

---------------------------------------

If Target.Address = "$C$8" Then

Select Case Target
Case "0085"
Z = "=Database!$B$3😀atabase!$L$3"
Selection.Copy

Select Case Target
Case "1085"
Z = "=Database!$$5😀atabase!$L$5"
Selection.Copy

End Select

With Range("C11")
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

End With

End If

End Sub


Ce code est composé de trois parties.

Dans la première, je veux afficher un menu déroulant en C6 en fonction de la réponse en C4. Seulement, il semble que le "Or" ne marche pas très bien 🙂

Dans la seconde partie, je souhaite afficher en C8, un menu déroulant en fonction des résultats en C4 et C6. Malheureusement, ca ne marche pas.

Enfin dans la dernière partie, je souhaite afficher les caractéristiques du produit indiqué en C8. Ces caractéristiques se trouvent dans la feuille 'Database'.

J'espère être suffisamment clair. Merci d'avance pour votre aide 🙂
 
Re : VBA - Code qui ne marche pas

Bonjour,

ci-joint quelques corrections et ton code qui fontionne partiellement.
J'ai mis quelques commentaires pour avoir des éclaircissement car pour le moment, je ne comprends pas tres bien ce que tu veux faire ...
 

Pièces jointes

Re : VBA - Code qui ne marche pas

Un grand merci Catrice.

Voici le fichier complété de quelques exemples.

J'espère que ca te permettra d'y voir un peu plus clair 🙂

La première partie marche parfaitement mais la deuxième bloque toujours 😛
 

Pièces jointes

Re : VBA - Code qui ne marche pas

Bonjour catrice, merci pour ces nouvelles modifications. Les deux premières parties fonctionnent maintenant parfaitement.

En gros, j'ai fait un tableau qui regroupe les caractéristiques de plusieurs centaines de produits. Malheureusement, ce tableau est tellement gros que je passe pas mal de temps à rechercher un produit. De plus, le fait de l'avoir sous forme de tableau n'est pas très lisible. C'est pourquoi je cherche à copier les caractéristiques et à les coller en transposé sur une feuille différente. Bien sur, ce collage ne se fait pas sur une cellule mais sur une plage.

Le but de ce code est donc de sélectionner un produit et de faire apparaitre ses caractéristiques sur cette page. A terme, je souhaite également pouvoir choisir faire apparaitre les caractéristiques d'un autre produit afin de pouvoir les comparer sur la même feuille.

J'espère être suffisamment clair.

Pour la troisième partie, j'ai également mis quelques commentaires sur le fichier joint
 

Pièces jointes

Dernière édition:
Re : VBA - Code qui ne marche pas

Enorme merci pour le temps passé Catrice.

Tout marche parfaitement sauf pour un petit détail.
Voici une partie du code pour la dernière partie :

If Target.Address = "$C$9" Then
With Sheets("Database")
Select Case Target
Case "AAA": .Range("B6:M6").Copy
Case "BBB": .Range("B7:M7").Copy
Case "CCC": .Range("B8:M8").Copy
' Et ainsi de suite
End Select
End With
With Range("C12")
.PasteSpecial Paste:=xlPasteAll, Transpose:=True
End With
End If

Imanginons maintenant que C9 soit vide, j'ai essayé :

Case "": .Range("B600:M600").Copy
'J'ai choisi ces cellules car elles étaient vides

Malheureusement, le code ne marche pas. Y-a-il une solution lorsque C9 est vide ou vais-je systématiquement avoir une erreur ?

Merci
 
Re : VBA - Code qui ne marche pas

Re,

Chez moi ceci fontionne :

If Target.Address = "$C$9" Then
With Sheets("Feuil2")
Select Case Target
Case "AAA": .Range("B6:M6").Copy
Case "BBB": .Range("B7:M7").Copy
Case "CCC": .Range("B8:M8").Copy
Case "": .Range("B600:M600").Copy
End Select
End With
Range("C12").PasteSpecial Paste:=xlPasteAll, Transpose:=True
End If

NB : le With est inutile pour le Paste.
 
- 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

Discussions similaires

Réponses
4
Affichages
243
Réponses
3
Affichages
508
Retour