Excel [VBS] - VB/VBA/VBS - Programmation
Marsh Posté le 24-03-2011 à 13:50:07
Code :
|
Tu définis en amont du While, et tu ne redefinis pas Netbios par la suite, ca ne peut pas tourner...
De plus, il va sortir de ton while des que Netbios sera different de "XP"...
Je verrais plutot quelque chose de ce genre la :
A la place des lignes 21 et 22:
Code :
|
Degager les lignes 36 ; 40
Et a la place de la ligne 52
Code :
|
Marsh Posté le 24-03-2011 à 16:14:35
Merci pour les réponses
SuppotDeSaTante a écrit : Tu définis en amont du While, et tu ne redefinis pas Netbios par la suite, ca ne peut pas tourner... |
Ah oui effectivement trop la honte lol Merci
SuppotDeSaTante a écrit : De plus, il va sortir de ton while des que Netbios sera different de "XP"... |
Dans mon fichier Excel les "XP" se suivent. Des que ce n'est plus le cas les valeurs ne m'intéressent plus. En fait je cherche seulement les cellules commençant par XP en respectant la casse.
SuppotDeSaTante a écrit : Je verrais plutot quelque chose de ce genre la :
|
Si je comprend bien ca "check" chaque ligne à partir de 1 et Next IntRow sert à passer à la suivante jusquà la derniere?
J'ai enlevé IntRow dans "Next IntRow" car j'ai un message d'erreur "Attente d'intruction".
En suivant ta méthode la boucle à l'air de marcher mais bloque à ligne 31 et m'affiche mon message d'erreur "L'ordinateur " & NomMachine & " n'a pas été trouvé sur le réseau" ou "NomMachine" correspond à un Blanc : L'ordinateur >< n'a pas été trouvé sur le réseau ( donc normale que l'erreur survienne )
Du coup je pense que j'ai un probleme à la ligne 23;24 :
Code :
|
Je voudrais dire : Si la valeur dans la cellule(IntRow, 10) commence par XP alors appliquer cette valeur à la variable "NomMachine"
C'est pas comme ça qu'il faut faire?
[Edit]
J'ai essayé d'isoler des lignes pour voir d'ou venait l'erreur et j'en est une autre maintenant " Erreur : Objet requis: 'Rows' " caractere 1 pour la ligne "DerLigne = objExcel.Cells(Rows.Count, 10).End(xlUp).Row"
Marsh Posté le 24-03-2011 à 16:37:03
Ah ui, ôtent pour moi.
Je l'ai fait dans Excel... pas en VBS...
objExcel.Cells(objExcel.Rows.Count, 10).End(xlUp).Row
Marsh Posté le 24-03-2011 à 16:50:43
SuppotDeSaTante a écrit : Ah ui, ôtent pour moi. |
T'aurais un exemple de script ou tu utilise objExcel.Cells(objExcel.Rows.Count, 10).End(xlUp).Row
Parce que maintenant j'ai : erreur d’exécution inconnu
Donc peut être que je zappe quelque chose qu'il faut que je rajoute ( ou enleve )
Merci
Marsh Posté le 24-03-2011 à 16:58:45
Fais un essai avec
DerLigne = 65536
Edit : je suis con...
xlUp.. en vbs...
Remplace xlUp par 3
objExcel.Cells(objExcel.Rows.Count, 10).End(3).Row
Marsh Posté le 24-03-2011 à 17:17:16
SuppotDeSaTante a écrit : Fais un essai avec |
Effectivement ça marche
Bon ben je mettrais 1000 alors parceque xlUp ca passe pas en vbs
Merci beaucoup
Marsh Posté le 24-03-2011 à 17:19:02
ReplyMarsh Posté le 24-03-2011 à 17:46:27
ReplyMarsh Posté le 25-03-2011 à 15:24:43
Maintenant le script marche nikel....... enfin presque
La ou ca bloque maintenant c'est ligne 16. Je pense au moment de la lecture du registre distant. Je ne comprend pas pourquoi il ne fait soit que m'inscrire Nok ( donc la valeur du registre n'existe pas ) peut importe qu'elle existe ou pas ; ou indisponible qui lui marche bien quand la machine distante n'est pas joignable
Code :
|
J'ai pourtant essayé plusieurs manière d’interroger le registre sur un pc distant. J'ai à chaque fois un problème alors que les droit sont bons etc.
Si quelqu'un à une idée d'ou provient mon erreur.
Merci pour vos conseils avisés
Marsh Posté le 25-03-2011 à 15:28:04
strValue te renvoie quoi pour les coups où ca ne marche pas ?
Marsh Posté le 25-03-2011 à 15:29:27
Hmm comment je peux récupérer cette valeur?
Quand j'essaye de la mettre dans une msgbox j'ai tout de suite une erreur
Marsh Posté le 25-03-2011 à 15:30:42
ReplyMarsh Posté le 25-03-2011 à 15:32:37
Pour le registre je n'ai pas de message d'erreur
Ca me met tout simplement Nok dans mon excel que la valeur dans le registre existe ou non
Pour "msgbox strValue" j'ai l'erreur sur la ligne ou je met cette commande.
Marsh Posté le 25-03-2011 à 15:38:15
Hum.
Reprenons.
"ScanOCS" c'est quoi ? Une clé ou une Valeur ?
Marsh Posté le 25-03-2011 à 15:40:46
Donc tu créés une Valeur Chaine directement dans le Run.. Mouai bon, admettons.
Tu as donc HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Et dedans une valeur chaine ayant pour nom ScanOCS ?
Marsh Posté le 25-03-2011 à 15:42:12
Exactement
(Ce n'est pas moi qui la créée je veux juste savoir si elle est présente)
Marsh Posté le 25-03-2011 à 15:43:17
Et dedans il y a quoi ? Comme données de la valeur ?
Marsh Posté le 25-03-2011 à 15:45:35
Et toi tu veux tester quoi ?
Si la valeur DWORD existe ou les données de la valeur DWORD ?
Marsh Posté le 25-03-2011 à 15:47:52
Si ScanOCS existe. De toute facon impossible qu'il n'y est rien dans ScanOCS
Hmmmm
à tous les coup faudrait pas que je remplace DWORD par String?
Marsh Posté le 25-03-2011 à 15:57:59
GetDWORDValue permet de lire les données dans la Valeur DWord, donc ton url
D'ailleurs, un truc comme ca serait plus rapide :
Set objWSH = CreateObject("WScript.Shell" )
Debug.Print objWSH.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ScanOCS" )
Tu peux d'ailleurs tester s'il y a une erreur ou pas et en fonction dire sil elle y est ou pas.
Ensuite, pour énumérer les Valeur d'une clé, remplace la ligne 19 par
Code :
|
Marsh Posté le 25-03-2011 à 16:36:01
WOUAHOU!
Rofl Beau Gosse ça marche du tonnerre
Et effectivement String à la place de Dword c'est mieux dans mon cas vu que je ne veux trouver que la valeur chaîne et pas ce qu'il y a dedans
Merci c'est génial
Marsh Posté le 24-03-2011 à 12:24:26
Bonjour,
Débutant en vb, je cherche à créer un vbs.
En effet celui-ci doit récupérer les noms netbios de machine dans un excel commençant par "XP" puis interroger ces machines sur le réseau pour vérifier qu'une valeur dans leur registre existe et enfin écrire dans ce même excel "OK" ou "Nok" sur la ligne correspondant à la bonne machine.
Apres plusieurs essai je pensais être enfin arrivé à quelque chose, mais non l'excel s'ouvre et il ne se passe rien.
Si quelqu'un à une idée d'ou pourrait provenir le problème je lui en serais reconnaissant
Merci