Incrementation par userform

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

docman95

XLDnaute Nouveau
Messieurs,

Clairement en galère et je pense que vous pourrez m'aider. J'explique

Dans mon fichier excel : Feuille1 ma userform, feuille 2 la liste d'IP (colonne C), Hostname (colonne D), commentaires (colonneE)

J'ai dans ma combobox un menu déroulant d'IP récupéré de la feuille2, colonne C du meme fichier.
Dans cette meme combobox, j'ai un champ "Hostname" ou j'indique le nom de mon serveur.
Dans cette meme combobox, j'ai un champ "Commentaire" ou j'indique un commentaire.
J'ai un bouton 'Enregistrer" vierge de code et c'est la que je bloque.

En cliquant sur 'Enregistrer", je voudrai qu'il incremente les données renseignées, en fonction de l'IP choisi.

Pour info, j'ai une petite formule (sur la colonne C) qui remplace l'IP par "Attribuée" lorsqu'on saisi un hostname (colonne D) de la meme ligne.

OK, IL Y A CERTAINEMENT PLUS SIMPLE, .... je suis preneur.

Code userform:

Private Sub ListBox1_Click()
Public maVariable As Variant

Private Sub IP_Disponible_Click()
maVariable = ComboBox1.Text
End Sub

Private Sub Logo_Click()

End Sub

Private Sub Hostname_Change()

End Sub

Private Sub Commentaire_Change()

End Sub

Private Sub Enregistrer_Click()

End Sub

Private Sub UserForm_Click()

End Sub


Merci à vous
 
Re : Incrementation par userform

Bonjour,

J'ai retouché un peu à ma sauce le fichier, en m'appuyant sur votre code, Gilbert. Je n'ai cependant pas réussi a intégrer le bouton export mais c'est une question de temps (lorsque je clic dessus, j'ai une erreur de code !!!).
On m'a demandé s'il était possible de pinguer l'IP selectionnée pour être certain qu'elle soit dispo avant attribution.

Je vous joint la nouvelle PJ de ce que j'ai fait. Merci de votre aide.

Stéphane
 

Pièces jointes

Dernière édition:
Re : Incrementation par userform

Bonjour,

J'ai retouché un peu à ma sauce le fichier, en m'appuyant sur votre code, Gilbert. Je n'ai cependant pas réussi a intégrer le bouton export mais c'est une question de temps (lorsque je clic dessus, j'ai une erreur de code !!!).
On m'a demandé s'il était possible de pinguer l'IP selectionnée pour être certain qu'elle soit dispo avant attribution.

Je vous joint la nouvelle PJ de ce que j'ai fait. Merci de votre aide.

Stéphane

pour le bouton il faut le code du module1 et la fonction du module 2


pour Pinguer voilà un code qui pourra vous être utile

VB:
    Function GetPingResult(Host)

   Dim objPing As Object
   Dim objStatus As Object
   Dim Result As String

   Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
       ExecQuery("Select * from Win32_PingStatus Where Address = '" & Host & "'")

   For Each objStatus In objPing
      Select Case objStatus.StatusCode
         Case 0: strResult = "Connected"
         Case 11001: strResult = "Buffer too small"
         Case 11002: strResult = "Destination net unreachable"
         Case 11003: strResult = "Destination host unreachable"
         Case 11004: strResult = "Destination protocol unreachable"
         Case 11005: strResult = "Destination port unreachable"
         Case 11006: strResult = "No resources"
         Case 11007: strResult = "Bad option"
         Case 11008: strResult = "Hardware error"
         Case 11009: strResult = "Packet too big"
         Case 11010: strResult = "Request timed out"
         Case 11011: strResult = "Bad request"
         Case 11012: strResult = "Bad route"
         Case 11013: strResult = "Time-To-Live (TTL) expired transit"
         Case 11014: strResult = "Time-To-Live (TTL) expired reassembly"
         Case 11015: strResult = "Parameter problem"
         Case 11016: strResult = "Source quench"
         Case 11017: strResult = "Option too big"
         Case 11018: strResult = "Bad destination"
         Case 11032: strResult = "Negotiating IPSEC"
         Case 11050: strResult = "General failure"
         Case Else: strResult = "Unknown host"
      End Select
      GetPingResult = strResult
   Next

   Set objPing = Nothing

End Function

Sub GetIPStatus()

  Dim Cell As Range
  Dim ipRng As Range
  Dim Result As String
  Dim Wks As Worksheet


Set Wks = Worksheets("Sheet2")

Set ipRng = Wks.Range("B3")
Set RngEnd = Wks.Cells(Rows.Count, ipRng.Column).End(xlUp)
Set ipRng = IIf(RngEnd.Row < ipRng.Row, ipRng, Wks.Range(ipRng, RngEnd))

  For Each Cell In ipRng
    Result = GetPingResult(Cell)
    Cell.Offset(0, 1) = Result
  Next Cell

End Sub
 
Re : Incrementation par userform

Bonjour,
Merci beaucoup Gilbert, le résultat est hyper satisfaisant. Encore un grand merci de ton aide. Je vais continuer à creuser pour intégrer le ping dans un bouton.

Respect pour ton aide et le temps que tu m'a consacré.

Stéphane
 
Dernière édition:
Re : Incrementation par userform

Bonjour,
J'avance gentiment dans mon developpement. Concernant le bouton ping, mon code qui fonctionne très bien :
Shell "cmd.exe /t:3f /k Ping 192.168.0.231 -t", vbNormalFocus

Je souhaite en revanche remplacer "192.168.0.231" par l'IP renseignée dans la ComboBox1 de ma userform. Pourriez vous m'aider pour la syntaxe adéquat.

Merci à tous
Stephane
 
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

Discussions similaires

Réponses
3
Affichages
265
Réponses
8
Affichages
269
  • Question Question
Microsoft 365 Textbox userform
Réponses
10
Affichages
634
Retour