Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sélection multiple manuelle : Multiple ActiveCell

14 réponses
Avatar
ben
Bonjour,

J'ai une commande qui s'étale sur plusieurs cellules.
J'aimerais lors de la sélection de celles-ci avec la souris lancer une
commande dos.

Je préfère une sélection manuelle que la concanténation des cellules.

Modèle sur une seule cellule :
> > Sub Nslookup()
>
> > ' Macro enregistre le 16/02/2009
> > ligne = ActiveCell.Row
> > colonne = ActiveCell.Column
> > cible = Cells(ligne, colonne)
> > 'MsgBox cible
> > toexe = "c:\winnt\system32\nslookup.exe" & " " & cible
> > retval = Shell(toexe, 1)
>
> > End Sub


Merci.

Cordialement.

10 réponses

1 2
Avatar
michdenis
Cette adresse te donnera des infos sur les paramètres que
tu peux utiliser pour obtenir la ligne de commande que tu désires
avec Nslookup
http://support.microsoft.com/kb/200525/fr

Quelle est la syntaxe de ta commande lorsque tu la tapes directement
dans une fenêtre DOS ?

Cette commande, tu peux l'inscrire dans un fichier NotePad et tu
l'enregistres avec une extension .BAT

Ta question se résume : Comment passer une variable au batch file
située dans une cellule lorsque tu veux lancer son exécution.

Pour pouvoir faire ça, tu dois modifier la commande de ton batch file
par des variables

Voici un exemple avec la commande XCOPY
'La ligne de code suivante normale dans une fenêtre DOS
C:Xcopy /s/e/y c:excel c:denis

Cette ligne permet de copier tous les fichiers et répertoires(vides ou non) contenus
dans le répertoire excel vers le répertoire C:Denis . Tu ne dois pas oublier le dernier
back lash après Denis, car il indique que Denis est un répertoire et non un fichier. De
plus,
si des fichiers sont présents dans le répertoire de destination, ils seront écrasés sans
aucun
avertissement ( le paramêtre responsable est /Y)

Après avoir modifié ta commande par des variables, la syntaxe de la commande
que tu inscrit dans ton batch file est celle-ci:
xcopy /s/e/y %1 %2

%1 remplace c:excel
%2 remplace c:denis
lorsque tu lanceras ton batchFile

Pour lancer ton batchFile directement dans une fenêtre DOS
c:cheminMonFichier.bat c:excel c:denis

Pour lancer la même commande dans Excel :
La ligne de commande que tu cherches est :

D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""

K = paramètre qui permet à la fenêtre DOS de demeurer active après l'exécution
C = Représente le chemin où est ton batchFile (ton fichier.bat)
A = remplace C:Excel dans mon exemple (variable 1)
B = Remplace c:denis dans mon exemple (variable 2) pour la commande de xcopy

Et pour lancer l'exécution de la commande D
Shell D, vbNormalFocus

La procédure regroupée dans un module standard
ressemblerait à ceci :
'-------------------------------------
Sub Test()
Dim D as String, C As String, A As String, B as String
A = "c:Fichier.bat"
B = "c:excel"
C = "c:denis"
D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""
Shell D, vbNormalFocus
End Sub
'-------------------------------------

Voilà !




"ben" a écrit dans le message de groupe de discussion :

Bonjour,

J'ai une commande qui s'étale sur plusieurs cellules.
J'aimerais lors de la sélection de celles-ci avec la souris lancer une
commande dos.

Je préfère une sélection manuelle que la concanténation des cellules.

Modèle sur une seule cellule :
> Sub Nslookup()

> ' Macro enregistre le 16/02/2009
> ligne = ActiveCell.Row
> colonne = ActiveCell.Column
> cible = Cells(ligne, colonne)
> 'MsgBox cible
> toexe = "c:winntsystem32nslookup.exe" & " " & cible
> retval = Shell(toexe, 1)

> End Sub




Merci.

Cordialement.
Avatar
ben
Bonjour,

Je veux lors de la sélection multiple des cellules que seulement
celles-ci soient prise en compte.

ActiveCell avec sélection multiple .... ?.

Cordialement.



"michdenis" wrote:

Cette adresse te donnera des infos sur les paramètres que
tu peux utiliser pour obtenir la ligne de commande que tu désires
avec Nslookup
http://support.microsoft.com/kb/200525/fr

Quelle est la syntaxe de ta commande lorsque tu la tapes directement
dans une fenêtre DOS ?

Cette commande, tu peux l'inscrire dans un fichier NotePad et tu
l'enregistres avec une extension .BAT

Ta question se résume : Comment passer une variable au batch file
située dans une cellule lorsque tu veux lancer son exécution.

Pour pouvoir faire ça, tu dois modifier la commande de ton batch file
par des variables

Voici un exemple avec la commande XCOPY
'La ligne de code suivante normale dans une fenêtre DOS
C:Xcopy /s/e/y c:excel c:denis

Cette ligne permet de copier tous les fichiers et répertoires(vides ou non) contenus
dans le répertoire excel vers le répertoire C:Denis . Tu ne dois pas oublier le dernier
back lash après Denis, car il indique que Denis est un répertoire et non un fichier. De
plus,
si des fichiers sont présents dans le répertoire de destination, ils seront écrasés sans
aucun
avertissement ( le paramêtre responsable est /Y)

Après avoir modifié ta commande par des variables, la syntaxe de la commande
que tu inscrit dans ton batch file est celle-ci:
xcopy /s/e/y %1 %2

%1 remplace c:excel
%2 remplace c:denis
lorsque tu lanceras ton batchFile

Pour lancer ton batchFile directement dans une fenêtre DOS
c:cheminMonFichier.bat c:excel c:denis

Pour lancer la même commande dans Excel :
La ligne de commande que tu cherches est :

D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""

K = paramètre qui permet à la fenêtre DOS de demeurer active après l'exécution
C = Représente le chemin où est ton batchFile (ton fichier.bat)
A = remplace C:Excel dans mon exemple (variable 1)
B = Remplace c:denis dans mon exemple (variable 2) pour la commande de xcopy

Et pour lancer l'exécution de la commande D
Shell D, vbNormalFocus

La procédure regroupée dans un module standard
ressemblerait à ceci :
'-------------------------------------
Sub Test()
Dim D as String, C As String, A As String, B as String
A = "c:Fichier.bat"
B = "c:excel"
C = "c:denis"
D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""
Shell D, vbNormalFocus
End Sub
'-------------------------------------

Voilà !




"ben" a écrit dans le message de groupe de discussion :

Bonjour,

J'ai une commande qui s'étale sur plusieurs cellules.
J'aimerais lors de la sélection de celles-ci avec la souris lancer une
commande dos.

Je préfère une sélection manuelle que la concanténation des cellules.

Modèle sur une seule cellule :
> > Sub Nslookup()
>
> > ' Macro enregistre le 16/02/2009
> > ligne = ActiveCell.Row
> > colonne = ActiveCell.Column
> > cible = Cells(ligne, colonne)
> > 'MsgBox cible
> > toexe = "c:winntsystem32nslookup.exe" & " " & cible
> > retval = Shell(toexe, 1)
>
> > End Sub


Merci.

Cordialement.




Avatar
michdenis
Sélection multiple ou pas, "ActiveCell" signifie TOUJOURS
la cellule qui est ACTIVE dans la feuille ACTIVE à l'écran.

Cependant, si tu as une sélection multiple et que tu veuilles
changer quelle cellule doit être active, tu peux utiliser une
des deux commandes suivantes : L'expression important
à retenir est "Activate" au lieu de "Sélect". Il est imporant
de prendre note que la cellule choisie doit être à l'intérieur
d'une des plages déjà sélectionnées sinon tu vas perdre
la sélection déjà en place dans ta feuille.
les 2 commande sont : (selon tes préférences)
Cells(3,2).Activate OU Range("B3").Activate




"ben" a écrit dans le message de groupe de discussion :

Bonjour,

Je veux lors de la sélection multiple des cellules que seulement
celles-ci soient prise en compte.

ActiveCell avec sélection multiple .... ?.

Cordialement.



"michdenis" wrote:

Cette adresse te donnera des infos sur les paramètres que
tu peux utiliser pour obtenir la ligne de commande que tu désires
avec Nslookup
http://support.microsoft.com/kb/200525/fr

Quelle est la syntaxe de ta commande lorsque tu la tapes directement
dans une fenêtre DOS ?

Cette commande, tu peux l'inscrire dans un fichier NotePad et tu
l'enregistres avec une extension .BAT

Ta question se résume : Comment passer une variable au batch file
située dans une cellule lorsque tu veux lancer son exécution.

Pour pouvoir faire ça, tu dois modifier la commande de ton batch file
par des variables

Voici un exemple avec la commande XCOPY
'La ligne de code suivante normale dans une fenêtre DOS
C:Xcopy /s/e/y c:excel c:denis

Cette ligne permet de copier tous les fichiers et répertoires(vides ou non) contenus
dans le répertoire excel vers le répertoire C:Denis . Tu ne dois pas oublier le
dernier
back lash après Denis, car il indique que Denis est un répertoire et non un fichier. De
plus,
si des fichiers sont présents dans le répertoire de destination, ils seront écrasés sans
aucun
avertissement ( le paramêtre responsable est /Y)

Après avoir modifié ta commande par des variables, la syntaxe de la commande
que tu inscrit dans ton batch file est celle-ci:
xcopy /s/e/y %1 %2

%1 remplace c:excel
%2 remplace c:denis
lorsque tu lanceras ton batchFile

Pour lancer ton batchFile directement dans une fenêtre DOS
c:cheminMonFichier.bat c:excel c:denis

Pour lancer la même commande dans Excel :
La ligne de commande que tu cherches est :

D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""

K = paramètre qui permet à la fenêtre DOS de demeurer active après l'exécution
C = Représente le chemin où est ton batchFile (ton fichier.bat)
A = remplace C:Excel dans mon exemple (variable 1)
B = Remplace c:denis dans mon exemple (variable 2) pour la commande de xcopy

Et pour lancer l'exécution de la commande D
Shell D, vbNormalFocus

La procédure regroupée dans un module standard
ressemblerait à ceci :
'-------------------------------------
Sub Test()
Dim D as String, C As String, A As String, B as String
A = "c:Fichier.bat"
B = "c:excel"
C = "c:denis"
D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""
Shell D, vbNormalFocus
End Sub
'-------------------------------------

Voilà !




"ben" a écrit dans le message de groupe de discussion :

Bonjour,

J'ai une commande qui s'étale sur plusieurs cellules.
J'aimerais lors de la sélection de celles-ci avec la souris lancer une
commande dos.

Je préfère une sélection manuelle que la concanténation des cellules.

Modèle sur une seule cellule :
> > Sub Nslookup()
>
> > ' Macro enregistre le 16/02/2009
> > ligne = ActiveCell.Row
> > colonne = ActiveCell.Column
> > cible = Cells(ligne, colonne)
> > 'MsgBox cible
> > toexe = "c:winntsystem32nslookup.exe" & " " & cible
> > retval = Shell(toexe, 1)
>
> > End Sub


Merci.

Cordialement.




Avatar
ben
Rebonjour,

Plus clairement.

Dans cellule1 : je
cellule2 : mange
cellule3: du pain
Lorsque je sélectionne les trois cellules avec la souris j'exécute une
macro qui me donne par exemple :

net send "je mange du pain"
ou
ping.exe "je mange du pain"


Merci


Cordialement.

"michdenis" wrote:

Sélection multiple ou pas, "ActiveCell" signifie TOUJOURS
la cellule qui est ACTIVE dans la feuille ACTIVE à l'écran.

Cependant, si tu as une sélection multiple et que tu veuilles
changer quelle cellule doit être active, tu peux utiliser une
des deux commandes suivantes : L'expression important
à retenir est "Activate" au lieu de "Sélect". Il est imporant
de prendre note que la cellule choisie doit être à l'intérieur
d'une des plages déjà sélectionnées sinon tu vas perdre
la sélection déjà en place dans ta feuille.
les 2 commande sont : (selon tes préférences)
Cells(3,2).Activate OU Range("B3").Activate




"ben" a écrit dans le message de groupe de discussion :

Bonjour,

Je veux lors de la sélection multiple des cellules que seulement
celles-ci soient prise en compte.

ActiveCell avec sélection multiple .... ?.

Cordialement.



"michdenis" wrote:

> Cette adresse te donnera des infos sur les paramètres que
> tu peux utiliser pour obtenir la ligne de commande que tu désires
> avec Nslookup
> http://support.microsoft.com/kb/200525/fr
>
> Quelle est la syntaxe de ta commande lorsque tu la tapes directement
> dans une fenêtre DOS ?
>
> Cette commande, tu peux l'inscrire dans un fichier NotePad et tu
> l'enregistres avec une extension .BAT
>
> Ta question se résume : Comment passer une variable au batch file
> située dans une cellule lorsque tu veux lancer son exécution.
>
> Pour pouvoir faire ça, tu dois modifier la commande de ton batch file
> par des variables
>
> Voici un exemple avec la commande XCOPY
> 'La ligne de code suivante normale dans une fenêtre DOS
> C:Xcopy /s/e/y c:excel c:denis
>
> Cette ligne permet de copier tous les fichiers et répertoires(vides ou non) contenus
> dans le répertoire excel vers le répertoire C:Denis . Tu ne dois pas oublier le
> dernier
> back lash après Denis, car il indique que Denis est un répertoire et non un fichier. De
> plus,
> si des fichiers sont présents dans le répertoire de destination, ils seront écrasés sans
> aucun
> avertissement ( le paramêtre responsable est /Y)
>
> Après avoir modifié ta commande par des variables, la syntaxe de la commande
> que tu inscrit dans ton batch file est celle-ci:
> xcopy /s/e/y %1 %2
>
> %1 remplace c:excel
> %2 remplace c:denis
> lorsque tu lanceras ton batchFile
>
> Pour lancer ton batchFile directement dans une fenêtre DOS
> c:cheminMonFichier.bat c:excel c:denis
>
> Pour lancer la même commande dans Excel :
> La ligne de commande que tu cherches est :
>
> D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""
>
> K = paramètre qui permet à la fenêtre DOS de demeurer active après l'exécution
> C = Représente le chemin où est ton batchFile (ton fichier.bat)
> A = remplace C:Excel dans mon exemple (variable 1)
> B = Remplace c:denis dans mon exemple (variable 2) pour la commande de xcopy
>
> Et pour lancer l'exécution de la commande D
> Shell D, vbNormalFocus
>
> La procédure regroupée dans un module standard
> ressemblerait à ceci :
> '-------------------------------------
> Sub Test()
> Dim D as String, C As String, A As String, B as String
> A = "c:Fichier.bat"
> B = "c:excel"
> C = "c:denis"
> D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""
> Shell D, vbNormalFocus
> End Sub
> '-------------------------------------
>
> Voilà !
>
>
>
>
> "ben" a écrit dans le message de groupe de discussion :
>
> Bonjour,
>
> J'ai une commande qui s'étale sur plusieurs cellules.
> J'aimerais lors de la sélection de celles-ci avec la souris lancer une
> commande dos.
>
> Je préfère une sélection manuelle que la concanténation des cellules.
>
> Modèle sur une seule cellule :
> > > Sub Nslookup()
> >
> > > ' Macro enregistre le 16/02/2009
> > > ligne = ActiveCell.Row
> > > colonne = ActiveCell.Column
> > > cible = Cells(ligne, colonne)
> > > 'MsgBox cible
> > > toexe = "c:winntsystem32nslookup.exe" & " " & cible
> > > retval = Shell(toexe, 1)
> >
> > > End Sub
>
>
> Merci.
>
> Cordialement.
>
>


Avatar
michdenis
Dim X as string
x = Cellule1 & " " & cellule2 & " " & cellule3
J'ai ajouté des espaces entre les mots... si dans ton cas
ce n'est pas nécessaire :
x = Cellule1 & cellule2 & cellule3

Tu remplaces Cellule1,2,3 par leur adresse

Si tu as déjà une sélection en colonne de A1 à A3
tu peux écrire :
x =Selection(1) & Selection(2) & Selection(3)

Si ta sélection est en ligne
cellule A1, B1, C1
x = Selection(,1)& Selection(,2)&selection(,3)

Mais l'idéal, au lieu d'utiliser une sélection à l'écran
pourquoi ne pas identifier tes cellules
X = Cells(1,1) & Cells(5,10) & Cells(10,5)
En fait, tu peux choisir les cellules de ton choix.



net send "je mange du pain"
ou
ping.exe Cellule1 & " " & cellule2 & " " & cellule3


"ben" a écrit dans le message de groupe de discussion :

Rebonjour,

Plus clairement.

Dans cellule1 : je
cellule2 : mange
cellule3: du pain
Lorsque je sélectionne les trois cellules avec la souris j'exécute une
macro qui me donne par exemple :

net send "je mange du pain"
ou
ping.exe "je mange du pain"


Merci


Cordialement.

"michdenis" wrote:

Sélection multiple ou pas, "ActiveCell" signifie TOUJOURS
la cellule qui est ACTIVE dans la feuille ACTIVE à l'écran.

Cependant, si tu as une sélection multiple et que tu veuilles
changer quelle cellule doit être active, tu peux utiliser une
des deux commandes suivantes : L'expression important
à retenir est "Activate" au lieu de "Sélect". Il est imporant
de prendre note que la cellule choisie doit être à l'intérieur
d'une des plages déjà sélectionnées sinon tu vas perdre
la sélection déjà en place dans ta feuille.
les 2 commande sont : (selon tes préférences)
Cells(3,2).Activate OU Range("B3").Activate




"ben" a écrit dans le message de groupe de discussion :

Bonjour,

Je veux lors de la sélection multiple des cellules que seulement
celles-ci soient prise en compte.

ActiveCell avec sélection multiple .... ?.

Cordialement.



"michdenis" wrote:

> Cette adresse te donnera des infos sur les paramètres que
> tu peux utiliser pour obtenir la ligne de commande que tu désires
> avec Nslookup
> http://support.microsoft.com/kb/200525/fr
>
> Quelle est la syntaxe de ta commande lorsque tu la tapes directement
> dans une fenêtre DOS ?
>
> Cette commande, tu peux l'inscrire dans un fichier NotePad et tu
> l'enregistres avec une extension .BAT
>
> Ta question se résume : Comment passer une variable au batch file
> située dans une cellule lorsque tu veux lancer son exécution.
>
> Pour pouvoir faire ça, tu dois modifier la commande de ton batch file
> par des variables
>
> Voici un exemple avec la commande XCOPY
> 'La ligne de code suivante normale dans une fenêtre DOS
> C:Xcopy /s/e/y c:excel c:denis
>
> Cette ligne permet de copier tous les fichiers et répertoires(vides ou non) contenus
> dans le répertoire excel vers le répertoire C:Denis . Tu ne dois pas oublier le
> dernier
> back lash après Denis, car il indique que Denis est un répertoire et non un fichier.
> De
> plus,
> si des fichiers sont présents dans le répertoire de destination, ils seront écrasés
> sans
> aucun
> avertissement ( le paramêtre responsable est /Y)
>
> Après avoir modifié ta commande par des variables, la syntaxe de la commande
> que tu inscrit dans ton batch file est celle-ci:
> xcopy /s/e/y %1 %2
>
> %1 remplace c:excel
> %2 remplace c:denis
> lorsque tu lanceras ton batchFile
>
> Pour lancer ton batchFile directement dans une fenêtre DOS
> c:cheminMonFichier.bat c:excel c:denis
>
> Pour lancer la même commande dans Excel :
> La ligne de commande que tu cherches est :
>
> D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""
>
> K = paramètre qui permet à la fenêtre DOS de demeurer active après l'exécution
> C = Représente le chemin où est ton batchFile (ton fichier.bat)
> A = remplace C:Excel dans mon exemple (variable 1)
> B = Remplace c:denis dans mon exemple (variable 2) pour la commande de xcopy
>
> Et pour lancer l'exécution de la commande D
> Shell D, vbNormalFocus
>
> La procédure regroupée dans un module standard
> ressemblerait à ceci :
> '-------------------------------------
> Sub Test()
> Dim D as String, C As String, A As String, B as String
> A = "c:Fichier.bat"
> B = "c:excel"
> C = "c:denis"
> D = Environ("comspec") & " /K " & C & " " & A & " " & B & ""
> Shell D, vbNormalFocus
> End Sub
> '-------------------------------------
>
> Voilà !
>
>
>
>
> "ben" a écrit dans le message de groupe de discussion
> :
>
> Bonjour,
>
> J'ai une commande qui s'étale sur plusieurs cellules.
> J'aimerais lors de la sélection de celles-ci avec la souris lancer une
> commande dos.
>
> Je préfère une sélection manuelle que la concanténation des cellules.
>
> Modèle sur une seule cellule :
> > > Sub Nslookup()
> >
> > > ' Macro enregistre le 16/02/2009
> > > ligne = ActiveCell.Row
> > > colonne = ActiveCell.Column
> > > cible = Cells(ligne, colonne)
> > > 'MsgBox cible
> > > toexe = "c:winntsystem32nslookup.exe" & " " & cible
> > > retval = Shell(toexe, 1)
> >
> > > End Sub
>
>
> Merci.
>
> Cordialement.
>
>


Avatar
michdenis
Peut-être ce que tu as besoin et ceci :

Tu colles ce code dans le module feuille où l'action doit
se dérouler.
A chaque fois que tu cliques sur une cellule dans la plage
A1:A10 (tu peux choisir celle que tu désires) la commande
et la fenêtre Dos va se lancer. Pour ce faire, j'ai supposé
que la dite cellule contenait la valeur de variable dont a
besoin ta commande pour s'exécuter normalement.
'--------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Commande As String
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
If Target <> "" Then
Commande = Environ("comspec") & " /k " & _
"c:winntsystem32nslookup.exe " & Target
Shell Commande, vbNormalFocus
End If
End If
End Sub
'----------------------------------




"ben" a écrit dans le message de groupe de discussion :

Bonjour,

J'ai une commande qui s'étale sur plusieurs cellules.
J'aimerais lors de la sélection de celles-ci avec la souris lancer une
commande dos.

Je préfère une sélection manuelle que la concanténation des cellules.

Modèle sur une seule cellule :
> Sub Nslookup()

> ' Macro enregistre le 16/02/2009
> ligne = ActiveCell.Row
> colonne = ActiveCell.Column
> cible = Cells(ligne, colonne)
> 'MsgBox cible
> toexe = "c:winntsystem32nslookup.exe" & " " & cible
> retval = Shell(toexe, 1)

> End Sub




Merci.

Cordialement.
Avatar
ben
Bonjour,

J'ai trouver ceci mais il ne supporte pas les colonnes avec chiffre et point
.
(cell1: 10., cell2:0., cell3:31., cell4:1)

Sub Test()
' il faut sélectionner plusieurs valeurs de la ligne 5 et/ou 6
Dim Cell As Range
Dim valeur

For Each Cell In Selection

valeur = valeur + Cell.Value
' résultats intermédiaires
' msgbox valeur
Next Cell
MsgBox valeur
toexe = "c:winntsystem32ping.exe -t" & " " & valeur
RetVal = Shell(toexe, 1)

End Sub

Cordialement.

"michdenis" wrote:

Peut-être ce que tu as besoin et ceci :

Tu colles ce code dans le module feuille où l'action doit
se dérouler.
A chaque fois que tu cliques sur une cellule dans la plage
A1:A10 (tu peux choisir celle que tu désires) la commande
et la fenêtre Dos va se lancer. Pour ce faire, j'ai supposé
que la dite cellule contenait la valeur de variable dont a
besoin ta commande pour s'exécuter normalement.
'--------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Commande As String
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
If Target <> "" Then
Commande = Environ("comspec") & " /k " & _
"c:winntsystem32nslookup.exe " & Target
Shell Commande, vbNormalFocus
End If
End If
End Sub
'----------------------------------




"ben" a écrit dans le message de groupe de discussion :

Bonjour,

J'ai une commande qui s'étale sur plusieurs cellules.
J'aimerais lors de la sélection de celles-ci avec la souris lancer une
commande dos.

Je préfère une sélection manuelle que la concanténation des cellules.

Modèle sur une seule cellule :
> > Sub Nslookup()
>
> > ' Macro enregistre le 16/02/2009
> > ligne = ActiveCell.Row
> > colonne = ActiveCell.Column
> > cible = Cells(ligne, colonne)
> > 'MsgBox cible
> > toexe = "c:winntsystem32nslookup.exe" & " " & cible
> > retval = Shell(toexe, 1)
>
> > End Sub


Merci.

Cordialement.




Avatar
ben
Bonjour,

Cela marche pour une ligne, cependant j'aimerais le faire en sélectionnant
plusieurs lignes ?.

Sub addResrv_ip()
' il faut sélectionner plusieurs valeurs de la ligne 5 et/ou 6
Dim Cell As Range
Dim valeur

For Each Cell In Selection

valeur = valeur & " " & Cell.Value
' résultats intermédiaires
' msgbox valeur
Next Cell
MsgBox valeur
toexe = "cmd.exe /k" & valeur
RetVal = Shell(toexe, 1)
End Sub


Cordialement
Avatar
michdenis
| Cela marche pour une ligne, cependant j'aimerais
| le faire en sélectionnant plusieurs lignes ?.

Sub addResrv_ip()
' il faut sélectionner plusieurs valeurs de la ligne 5 et/ou 6
Dim Cell As Range, Ligne As Range, Valeur

'vérifier si Selection est une plage de cellules
if typename(selection) = "Range" then
'Boucle sur chaque ligne de la sélection
For each Ligne in Selection.Rows
'Boucle sur chaque cellule de la ligne
For Each Cell In Ligne.Cells
valeur = valeur & " " & Cell.Value
' résultats intermédiaires
' msgbox valeur
Next Cell
MsgBox valeur
toexe = "cmd.exe /k" & valeur
RetVal = Shell(toexe, 1)
Next
End if

End Sub
Avatar
ben
Bonjour,

J'ai fais le test sur 2 ligne2.
La premier ligne est bien exécuter.
Cependant à la 2ème il additionne la première, et là c'est pas bon...

Aussi il ouvre une fénêtre dos par ligne, c'est pas possible d'avoir tous le
traitement sur une seule fenêtre ?.

Je me disais c'était pas mieux de faire un copie des cellules et lignes et
de les coller dans le cmd, car manuellement il traite ligne par ligne :
Ex:Je n'ai pas encore trouvé comment faire un coller dans cmd (DOS)
*********************
Sub addResrv_ip3()
' il faut sélectionner plusieurs valeurs de la ligne 5 et/ou 6
' " " = espace
' pour additionner des nombres mettre + au lieu &
Dim Cell As Range
Dim Valeur
Dim rngCell As Range

For Each rngCell In Selection.Cells
Selection.Copy
'paste
Next rngCell
'toexe = "cmd.exe /k " & Paste....????? Syntaxe ou commande
coller ?.
'RetVal = Shell(toexe, 1)

End Sub
*********************************
"michdenis" wrote:



| Cela marche pour une ligne, cependant j'aimerais
| le faire en sélectionnant plusieurs lignes ?.

Sub addResrv_ip()
' il faut sélectionner plusieurs valeurs de la ligne 5 et/ou 6
Dim Cell As Range, Ligne As Range, Valeur

'vérifier si Selection est une plage de cellules
if typename(selection) = "Range" then
'Boucle sur chaque ligne de la sélection
For each Ligne in Selection.Rows
'Boucle sur chaque cellule de la ligne
For Each Cell In Ligne.Cells
valeur = valeur & " " & Cell.Value
' résultats intermédiaires
' msgbox valeur
Next Cell
MsgBox valeur
toexe = "cmd.exe /k" & valeur
RetVal = Shell(toexe, 1)
Next
End if

End Sub






1 2