Obtenir la valeur d une cellule enselectionnant plusieurs co

jeannoxxx - Modifié le 27 juil. 2022 à 16:38
 Jeannoxxx - 28 juil. 2022 à 13:58

Bonjour,

j'ai un souci que je n'arrive pas a résoudre:

j'ai un plan d'adressage IP avec plusieurs lignes comme site (plusieurs occurrences), matériels (ex: Switch, routeur), équipement et plusieurs colonnes VLAN (gestion et prod) et je voudrais sélectionner l'adresse selon ces critères

je sélectionne les différents éléments via des combobox 

la structure du tableau est du type:

site                materiels        equipement          N VLAN gest     @ip       N°VLAN PROD     @IP

lille                  switch 1           pc                           10           41.254              20              41.12

lille                  switch  1          imprimante              10           41.252              20              41.11

lille                  routeur 1         scanner                   10           41 .251              20             41.10

lille                  routeur 1        pc                             10           41.250              20              41.09

lille                   switch 2          pc                            10           41.249              20              41.08

bordeaux         routeur 1          pc                          10            33.252              20             33.12

bordeaux         switch 1           imprimante              10            33.251              20             33.11

etc....

je désire, en sélectionnant les champs site, matériels et équipements dans mes combobox et en inscrivant le numéro du vlan dans une combobox, pouvoir obtenir @ ip dans une textbox

pour ce faire, j'ai utilisé le code suivant:

Private Sub ComboBoxnumvlan_Change()

'********remplissage du adresses IP selon le numero de vlan choisi*********************
'déclaration des variables
Dim site As String
Dim systeme As String
dim materiel as string
Dim vlan As Long


site = ComboBoxsite.Value
systeme = ComboBoxequipement.Value
materiel=comboboxmat.value
vlan = ComboBoxnumvlan.Value

'rechercher les données dans la page VLAN
Set ws = Sheets("IP")
'faire la corrélation entre le numero de vlan et l'adresse IP
If Me.ComboBoxnumvlan.ListIndex = -1 Then Exit Sub
'le tableau commence ligne 6
For i = 6 To ws.Range("B" & Rows.Count).End(xlUp).Row
'faire la corrélation entre le site colonne E, la colonne F pour le materiel, la colonne G pour l'equipement et P pour le vlan du tableau 
If site = ws.Cells(i, "E").Value And materiel = ws.Cells(i, "F").Value And systeme=ws.cells(i,"G") and  vlan = ws.Cells(i, "P") Then
'affichage de l'IP colonne R et du masque colonne O
Me.TextBoxIP = ws.Cells(i, "R").Value And ws.Cells(i, "o")
End If
Next
End Sub

malheureusement rien ne s'affiche dans la textbox quand je change le numéro de vlan dans la combobox

pourriez vous m'aider s'il vous plait?

Cdlt,

7 réponses

vb95 Messages postés 3474 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 7 mai 2024 169
Modifié le 27 juil. 2022 à 16:36

Bonjour

1) Lorsque l'on veut afficher le contenu d'un Textbox on se sert de la propriété Text de la Textbox .

Et on précise bien ".Text" après le nom de la TextBox même si cela est sous-entendu . Question de clarté dans le code .

Ainsi ta ligne 25 devient

Me.TextBoxIP.Text = ws.Cells(i, "R").Value And ws.Cells(i, "o")

2) Maintenant que veux tu exactement faire avec le And à la même ligne ? 

Si c'est afficher deux informations différentes à la suite regarde mon message n° 9 de cette discussion : https://codes-sources.commentcamarche.net/forum/affich-10108957-extraire-valeur-d-une-colonne-a-partir-de-2-combobox

Et en plus c'est toi même qui étais l'auteur à l'origine de cette discussion .


0
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
27 juil. 2022 à 17:32

Salut Vb95 et Jean,

Bien vu Vb95.

Attention Jean à tes copier/coller...

Tu as repris le texte précédent dans le "IF" avec un "AND" de comparaison booléenne.

Mais pour concaténer un texte, c'est l'esperluette qu'il faut utiliser:

Mon.Text= "MON" & " " & "TEXTE" => "MON TEXTE"

Mon.Text= "MON" AND " " AND "TEXTE" =>"Type mismatch" une string n'est pas une valeur booleen ou numérique.

0

Merci à vous pour vos réponses. 

En fait je cherche à placer plusieurs conditions séparées par AND car il faut choisir le site et le bâtiment et l équipement et le vlan pour charger la valeur de la cellule @ip dans le texboxip

La difficulté réside dans le choix du vlan où j ai une Colonne qui contient tous les vlans 10 et une autre tous les vlans 20.

Donc il faut que selon le choix du vlan, je cherche à accéder à l une ou l autre valeur @ip correspondante. 

Vb: merci pour la subtilité .Text  : je ne la connaissais pas

0
vb95 Messages postés 3474 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 7 mai 2024 169
27 juil. 2022 à 19:08

Pour le choix du Vlan deux Checkbox avec comme Texte "Vlan 10" et "Vlan 20" .

L'une est cochée alors que l'autre non .

Lorsque tu coches celle qui ne l'est pas tu décoches celle qui était cochée et ton choix est ainsi fait entre Vlan 10 et Vlan 20 .


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

Bonne idée ! 

Par contre je risque d avoir plusieurs plan d adressage ip avec une multitude de vlan différent. 

0
vb95 Messages postés 3474 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 7 mai 2024 169
28 juil. 2022 à 10:35

C'est-à-dire que tu aurais plus de 2 types de Vlan ?

Avec 5 Vlans par exemple là le combobox s'impose .

Ou alors j'ai mal compris .


0

C est bien cela. Je vais avoir un grand nombre de vlan

0
Rejoignez-nous