Restrictions placées dans fichier plutôt qu'en dur dans le code

  • Initiateur de la discussion Initiateur de la discussion Sebast
  • 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 !

Sebast

XLDnaute Impliqué
Bonjour à toutes et à tous,

après m'être fait des noeuds au cerveau, je m'adresse au forum pour vous soumettre une difficulté tenant à une restriction.
Je cherche à restreindre le déroulement du programme par une instruction de type If .Cells(i, 1) = "Hollande" Or .Cells(i, 1) = "Italie" Or .Cells(i, 1) = "Espagne" Then ...

Pour une meilleure compréhension, j'ai placé dans le fichier joint une version qui fonctionne mais avec l'instruction ci-dessus en dur : le programme fait le job mais à terme, c'est fastidieux car il faut rentrer dans le code pour modifier les pays
Le 2e programme fait appel à une zone (dans un onglet à part) que je peux alimenter et modifier très facilement ... mais ça plante !

Peut-être un oeil neuf saura me dire où est l'erreur.

Merci à toutes et à tous pour vos lumières
 

Pièces jointes

Re : Restrictions placées dans fichier plutôt qu'en dur dans le code

Bonjour Sebast,

Essaye comme ça :
VB:
Sub Programme_zone_variable()

Dim Lastligne As Long

' Définition de la zone de restriction
Sheets("Listes").Activate
Range("D2").Select
Lastligne = Range("D" & Rows.Count).End(xlUp).Row
Range("D2:D" & Lastligne).Name = "BLACKLISTE"


' Définition de la zone où se trouvent les données pour le vlookup
Sheets("Listes").Activate
Range("A2").Select
Dim ZeilenNr As Long
ZeilenNr = Range("A" & Rows.Count).End(xlUp).Row
Range("A2:B" & ZeilenNr).Name = "SELECTION"


Dim lastline As Long, i As Long
Dim Prix As Variant
Dim Cellule As Range

lastline = Sheets("BASE").Range("A" & Rows.Count).End(xlUp).Row

' Le prix est écrit dans la 10e colonne
 ' ça bloque ici (Blackliste = l'équivalent "souhaité" de If .Cells(i, 1) = "Hollande" etc.)
    With Sheets("BASE")
            For i = 2 To lastline
                For Each Cellule In Range("BLACKLISTE")
                    If .Cells(i, 1) = Cellule Then
                        Prix = Application.WorksheetFunction.VLookup(.Cells(i, 1), Range("SELECTION"), 2, False)
                        .Cells(i, 10) = Prix
                    End If
                Next Cellule
            Next i
    End With
End Sub

Bonne journée.
 
Re : Restrictions placées dans fichier plutôt qu'en dur dans le code

Bonjour WUTED,

désolé pour ma réponse tardive, j'ai eu un problème de connexion internet.
Ca fonctionne parfaitement : absolument parfait pour mon besoin, je vais pouvoir adapter la démarche à de nombreuses applis sans avoir à reprendre le code à chaque fois.

Un grand merci pour ton coup de main et ta réponse si rapide.

Bonne soirée
 
- 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

C
Réponses
1
Affichages
1 K
Cubensia
C
M
Réponses
4
Affichages
3 K
M
L
Réponses
9
Affichages
1 K
ldexplorer
L
C
Réponses
0
Affichages
929
cGregueusse
C
P
Réponses
2
Affichages
980
P
Retour