:confused: Mettre des variables dans une phrase VBA

sebby

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau dans ce forum et je viens à vous car j'ai une question très important dont je ne trouve pas la réponse. J'ai bien cherché sur le forum mais sans réussite.
Donc voilà mon problème: J'ai mit 3 chiffres dans 3 cellules différentes, par exemple A1 A2 et A3. J'ai crée un bouton avec macro pour pouvoir exporter la valeurs de ces 3 cellules sur le blocnote. Donc voici le programme que j'utilise pour exporter UNE valeur :

Range("A1:A3").Select
Selection.Copy
Dim RetVal
RetVal = Shell("notepad.exe", 3)
SendKeys ("^v"), True
SendKeys ("%{tab}"), True

Donc ça ça marche impeccable. Par contre maintenant j'aimerais faire une phrase comprenant ces 3 valeurs et l'exporter sur le bloc note.


Donc en gros voilà ce que je fais pour cela :

Private Sub CommandButton1_Click()

Dim repertoire As String
Dim droit As String
Dim id As Integer
Dim phrase As String

repertoire = Range("A1").Value

phrase = ("Je suis le répertoire = " & repertoire) (1)

''''''''''Range("A7:L13").Select
Selection.Copy
Dim RetVal
RetVal = Shell("notepad.exe", 3)
SendKeys ("^v"), True
SendKeys ("%{tab}"), True


End Sub


donc mon problème est en (1) ou je ne connais pas ce qu'il faut écrire pour pouvoir exporter, la variable repertoire dans une phrase, vers le blocnote. Je pense qu'il ne doit pas manquer grand chose mais je galère à mort depuis ce matin, j'ai cherché partout sur le net mais rien ne fonctionne pour ce que je veux faire.


Un grand grand grand merci d'avance.
Bonne fin de journée à tous. :D
 

mromain

XLDnaute Barbatruc
Re : :confused: Mettre des variables dans une phrase VBA

bonjour sebby et bienvenue sur le forum,

voici une autre solution pour écrire un fichier texte (sans passer par le bloc note)
Code:
Sub test()

fichierTexte = "C:\test.txt"

'créer le fichier texte (écrase le fichier si déjà existant)
Set myFso = CreateObject("Scripting.FileSystemObject")
Set csvFile = myFso.CreateTextFile(Filename:=fichierTexte, overwrite:=True)

'écrire une première ligne
ligneAEcrire = "la valeur de la cellule A1 est : " & Range("A1").Value
csvFile.WriteLine ligneAEcrire

'écrire une seconde ligne
csvFile.WriteLine "deuxième ligne"

'fermer le fichier
csvFile.Close
Set csvFile = Nothing: Set myFso = Nothing

End Sub

en espérant que ça t'aidera.

a+
 

sebby

XLDnaute Nouveau
Re : :confused: Mettre des variables dans une phrase VBA

salut, ;)

merci beaucoup de ta réponse. Niquel ça marche :p par contre j'ai encore une autre petite question :
La phrase que je dois écrire c'est :
dsmod group "CN= ..........

Donc en gros sur vba je fais :

"dsmod group CN=" mais il me manque un guillemet et pour y remédier je fais :

ligneAEcrire = "dsmod group """CN=" & Range("A1").Value

Mais cela ne marche pas, je ne vois pas trop ou je me trompe ??

Encore un grand grand merci d'avance.
 

sebby

XLDnaute Nouveau
Re : :confused: Mettre des variables dans une phrase VBA

Salut,

C'est bon j'ai trouvé lol, merci quand même.

Par contre une autre question.
maintenant je fais ça :

ligneAEcrire = "dsmod group ""CN=" & Range("A1").Value

Et j'aimerais savoir si je peux faire une boucle for depuis la case A1 jusqu'à A65536 mais qui détecte quand est ce qu'il n'y a plus d'informations ??

Je pensais faire comme ça

Pour i de 1 à 65536
ligneAEcrire = "dsmod group ""CN=" & Range("Ai").Value

C'est bon ou pas ?

Merci d'avance.
 

mromain

XLDnaute Barbatruc
Re : :confused: Mettre des variables dans une phrase VBA

re,

si tu veux écrire la chaine de caractère titi"tutu"tata dans un string, tu dois écrire :
Code:
leString = [COLOR=Red]"[/COLOR]titi[COLOR=Blue]""[/COLOR]tutu[COLOR=Blue]""[/COLOR]tata[COLOR=Red]"[/COLOR]
les guillemets rouges servent à encadrer la chaine de string
les double-guillemets bleus srvent à représenter UN guillemet.

dans ton cas, si tu veux écrire dsmod group "CN=<ValeurCelluleA1>", tu devra écrire :
Code:
= [COLOR=Red]"[/COLOR]dsmod group [COLOR=Blue]""[/COLOR]CN=[COLOR=Red]"[/COLOR] & Range("A1").Value &[COLOR=Red]"[/COLOR][COLOR=Blue]""[/COLOR][COLOR=Red]"[/COLOR]

a+
 

mromain

XLDnaute Barbatruc
Re : :confused: Mettre des variables dans une phrase VBA

Salut,

C'est bon j'ai trouvé lol, merci quand même.

Par contre une autre question.
maintenant je fais ça :

ligneAEcrire = "dsmod group ""CN=" & Range("A1").Value

Et j'aimerais savoir si je peux faire une boucle for depuis la case A1 jusqu'à A65536 mais qui détecte quand est ce qu'il n'y a plus d'informations ??

Je pensais faire comme ça

Pour i de 1 à 65536
ligneAEcrire = "dsmod group ""CN=" & Range("Ai").Value

C'est bon ou pas ?

Merci d'avance.

essaye avec ce code
Code:
'boucler de la ligne 1 à la dernière ligne de la colonne A remplie
For i = 1 To Range("A" & Rows.Count).End(xlUp)
    ligneAEcrire = "dsmod group ""CN=" & Range("A" & i).Value
Next i

a+
 

sebby

XLDnaute Nouveau
Re : :confused: Mettre des variables dans une phrase VBA

Salut,

Merci encore de vos réponses super rapide, j'avance super vitre grâce à vous.
Donc j'ai testé ton code mromain, ce qu'il me donne :

For i = 1 To Range("A" & Rows.Count).End(xlUp)
ligneAEcrire = "dsmod group ""CN=" & Range("A" & i).Value
csvFile.WriteLine ligneAEcrire
Exit For
Next i

Mais quand je clique sur mon bouton il me dit "erreur d'execution 13, incompatibilité de type".
Alors je sais pas si faut déclarer le i, si oui je l'ai fait comme ceci :

Dim i as Integer

Mais il me met le même problème alors je ne sais pas trop d'ou ça vient !!

Merci d'avance. :D
 

mromain

XLDnaute Barbatruc
Re : :confused: Mettre des variables dans une phrase VBA

re,

j'étais allé trop vite, voici le code :
Code:
'boucler de la ligne 1 à la dernière ligne de la colonne A remplie
For i = 1 To Range("A" & Rows.Count).End(xlUp)[B].Row[/B]
    ligneAEcrire = "dsmod group ""CN=" & Range("A" & i).Value
Next i

a+
 

sebby

XLDnaute Nouveau
Re : :confused: Mettre des variables dans une phrase VBA

re,

Alors franchement merci, ça marche niquel. Par contre je dois jouer avec les for maintenant c'est pas les indices des colonnes que je dois faire varier mais les lettres alors j'arrive pas à trouver comment faire.
Genre je dois faire varier de B6 à L6 donc en gros i de B à L et par la même occasion le 6 aussi.

Désolé de vous demander bcp de chose mais je galère vraiment en vba puisque je viens de commencer depuis 2 jours LOL.

Merci encore d'avance.
 

sebby

XLDnaute Nouveau
Re : :confused: Mettre des variables dans une phrase VBA

re,

j'ai un peu réfléchit et je pensais faire un truc comme ça mais bon normal ça bug lol :

For i = 6 To Range("B" & Rows.Count).End(xlUp).Row
For j = "B" To "L"
i varie de 6 jusqu'à la fin par contre j varie de B à L


Merci d'avance
 
Dernière édition:

mromain

XLDnaute Barbatruc
Re : :confused: Mettre des variables dans une phrase VBA

re,

en VBA, pour manipuler les cellules, on peut utiliser le "Range" ou le "Cells"

Range("A3") équivaut à Cells(3, 1)

donc pour faire boucler de B6 à L6, tu peux écrire

Code:
For i = 2 to 14
    MsgBox Cells(6, i).Value
Next i
a+
 

sebby

XLDnaute Nouveau
Re : :confused: Mettre des variables dans une phrase VBA

Salut tout le monde,

Un grand grand merci pour votre aide, grâce à vous j'ai réussi à résoudre mon problème, ça marche super bien maintenant puis surtout j'ai beaucoup progresser aujourd'hui en vba. Je suis très très loin d'un professionnel mais je suis content d'avoir fait ce que j'ai fait.

Encore un grand merci de vos aides et à très bientôt.
 
Dernière édition:

Discussions similaires

Réponses
47
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal