écrire un texte défini dans une case excel dans une condition
Dernière réponse : dans Programmation
bien le bonjour à vous !
voila je pense que mon titre est assé explicite
je n'ai pas trouvé quelle est la commande pour forcer l'écriture d'un string dans une case
quelqu'un pourrait m'aider ???
voila je pense que mon titre est assé explicite
je n'ai pas trouvé quelle est la commande pour forcer l'écriture d'un string dans une case
If bob=1 then
'écrire un "x" dans la case A:12
Else
'effacer les case de la colone A
End If
quelqu'un pourrait m'aider ???
Autres pages sur : ecrire texte defini case excel condition
Lassé par la pub ? Créez un compte
Meilleure solution
Salut,
Demande à l'enregistreur de macro :
Alors que l'enregistrement est en cours, mets une valeur dans la cellule A12, puis efface les cases de la colonnes A. Arrête l'enregistrement et va regarder le code obtenu. Etudie-le, et surtout arrange-le, parce qu'il est très moche. Je peux t'aider à le faire.
Demande à l'enregistreur de macro :
Alors que l'enregistrement est en cours, mets une valeur dans la cellule A12, puis efface les cases de la colonnes A. Arrête l'enregistrement et va regarder le code obtenu. Etudie-le, et surtout arrange-le, parce qu'il est très moche. Je peux t'aider à le faire.
voici mon code
je voulais faire en sorte que :
-pour chacune des valeur de fichiers soit rentré dans la listbox1 ça fonctionne
-si l'une des valeurs de fichier contien ValideSePresenter1 alors on met une croi dans E6 sinon on enlève la croi précédente (et c là que je m'embrouille un pe déjà dans mon algo)
-si l'une des valeurs de fichier contien EnCoursSePresenter1 alors on met la croi dans E7
hum hum je m'embrouille tout seul
ListBox1.Clear
While fichiers <> ""
ListBox1.AddItem fichiers
'I//écriture du tableau
'A)Le nom du stagiaire
Range("D3").Select
ActiveCell.FormulaR1C1 = NomStagiaire
'B)Se Présenter première exercice
If fichiers Like "*ValideSePresenter1*" Then
Range("E6").Select
ActiveCell.FormulaR1C1 = "X"
Else
Range("E6").Select
ActiveCell.FormulaR1C1 = ""
End If
If fichiers Like "*EnCoursSePresenter1*" Then
Range("F6").Select
ActiveCell.FormulaR1C1 = "X"
Else
Range("F6").Select
ActiveCell.FormulaR1C1 = ""
End If
fichiers = Dir()
Wend
je voulais faire en sorte que :
-pour chacune des valeur de fichiers soit rentré dans la listbox1 ça fonctionne
-si l'une des valeurs de fichier contien ValideSePresenter1 alors on met une croi dans E6 sinon on enlève la croi précédente (et c là que je m'embrouille un pe déjà dans mon algo)
-si l'une des valeurs de fichier contien EnCoursSePresenter1 alors on met la croi dans E7
hum hum je m'embrouille tout seul
Mouhais
Bon, alors première chose, tu me vires tout de suite ces Machin.Select/ActiveCell.Truc. C'est ridicule. Ecris Machin.Truc directement.
FormulaR1C1, c'est trop long à écrire. Formula, est plus court. Mais au fait, pourquoi entrer une formule alors que ce n'en est pas une ? Utilise Value.
Pis While .. Wend c'est du BASIC 1, de 1985. Utilise Do While .. Loop.
Regarde :
Ca à plus de gueule, non ?
Alors on complique, pour simplifier
(Ne pas trop en abuser) :
(J'ai mis le nom de la variable au singulier
)
Allez, à toi de m'étudier tout ça, pour que ça te soit profitable.
----------------------------
C'est dans le nom du fichier que tu veux trouver ValideSePresenter1 et/ou EnCoursSePresenter1 ?
Bon, alors première chose, tu me vires tout de suite ces Machin.Select/ActiveCell.Truc. C'est ridicule. Ecris Machin.Truc directement.
FormulaR1C1, c'est trop long à écrire. Formula, est plus court. Mais au fait, pourquoi entrer une formule alors que ce n'en est pas une ? Utilise Value.
Pis While .. Wend c'est du BASIC 1, de 1985. Utilise Do While .. Loop.
Regarde :
'// Doit manquer un Dir(quelquechose) Ici ??
fichiers = Dir(quelquechose)
ListBox1.Clear
Do While fichiers <> ""
ListBox1.AddItem fichiers
'// I//écriture du tableau
'// A)Le nom du stagiaire
Range("D3" ).Value = NomStagiaire
'// B)Se Présenter première exercice
If fichiers Like "*ValideSePresenter1*" Then
Range("E6" ).Value = "X"
Else
Range("E6" ).Value = ""
End If
If fichiers Like "*EnCoursSePresenter1*" Then
Range("F6" ).Value = "X"
Else
Range("F6" ).Value = ""
End If
fichiers = Dir()
Loop
Ca à plus de gueule, non ?
Alors on complique, pour simplifier
(Ne pas trop en abuser) :
Dim fichier As String
fichier = Dir(quelquechose)
ListBox1.Clear
Do While fichiers <> ""
ListBox1.AddItem fichier
Range("D3" ).Value = NomStagiaire
Range("E6" ).Value = Iif(fichier Like "*ValideSePresenter1*", "X", "")
Range("F6" ).Value = Iif(fichier Like "*EnCoursSePresenter1*", "X", "")
fichier = Dir()
Loop
(J'ai mis le nom de la variable au singulier
)Allez, à toi de m'étudier tout ça, pour que ça te soit profitable.
----------------------------
C'est dans le nom du fichier que tu veux trouver ValideSePresenter1 et/ou EnCoursSePresenter1 ?
oui c'est bien dans le nom du fichier mais fichier contient plusieur nom enfaite fichier renvoi les nom de fichiers contenu dans un répertoire
et quelque soit le nom du fichier (si il contient "ValideSepresenter1" ou "EnCourSepresenter2) j'ai toujours un X dans F6 et F7...
PS:
pourquoi tu dit qu'il ne faut pas abuser du If bizar ?
et quelque soit le nom du fichier (si il contient "ValideSepresenter1" ou "EnCourSepresenter2) j'ai toujours un X dans F6 et F7...
Private Sub ListBox2_Click()
Dim NomStagiaire As String
NomStagiaire = ListBox2.Value
fichiers = Dir("\\squeeze\exo\cours d'anglais\Suivi Stagiaire\" & NomStagiaire & "\")
'MsgBox NomStagiaire & ": "
ListBox1.Clear
Do While fichiers <> ""
ListBox1.AddItem fichiers
'I//écriture du tableau
'A)Le nom du stagiaire
Range("D3").Value = NomStagiaire
'B)Se Présenter première exercice
If fichiers Like "*ValideSePresenter1*" Then
Range("E6").Value = "X"
Else
Range("E6").Value = ""
End If
If fichiers Like "*EnCoursSePresenter1*" Then
Range("F6").Value = "X"
Else
Range("F6").Value = ""
End If
'C)Se Présenter deuxième exercice
If fichiers Like "*ValideSePresenter2*" Then
Range("E7").Value = "X"
Else
Range("E7").Value = ""
End If
If fichiers Like "*EnCoursSePresenter1*" Then
Range("F7").Value = "X"
Else
Range("F7").Value = ""
End If
fichiers = Dir()
Loop
End Sub
PS:
pourquoi tu dit qu'il ne faut pas abuser du If bizar ?
Iif(fichier Like "*ValideSePresenter1*", "X", "" )
Euh, non, c'est de compliquer pour simplifier, dont il ne faut pas abuser. Sous UNIX, on a même inventé le principe Pire c'est mieux
Je vois que tu es approximatif dans la déclaration de tes variables (c'est un reproche
- sauf si tu ne montres pas tout ton code ce qui n'est plus un reproche
). Utilise l'Option Explicit.
Je ne vois pas le problème pour tes croix. Sauf que la ligne 18 et la ligne 36 sont identiques. Sois plus rigoureux. Raccourcir les lignes de code grâce à Iif() par exemple, et tout mettre comme dans un pseudo tableau (regarde mes lignes 8, 9 et 10, ne dirait-on pas un tableau) permet de vérifier du premier coup d'oeil.
Je vois que tu es approximatif dans la déclaration de tes variables (c'est un reproche
- sauf si tu ne montres pas tout ton code ce qui n'est plus un reproche
). Utilise l'Option Explicit.Je ne vois pas le problème pour tes croix. Sauf que la ligne 18 et la ligne 36 sont identiques. Sois plus rigoureux. Raccourcir les lignes de code grâce à Iif() par exemple, et tout mettre comme dans un pseudo tableau (regarde mes lignes 8, 9 et 10, ne dirait-on pas un tableau) permet de vérifier du premier coup d'oeil.
c'est vrai que c'est classe si j'ai bien compri
si on décompose la parenthèse du IIf on a d'abord le If ensuite le then et ensuite le else c'est biens ça ?
sinon voila mon code complet
je pense que le problème vien du faite qu'il y a plusieurs valeurs dans Fichiers
(parcequ'il y a plusieurs fichiers dans le repertoire )
j'ai mis ma construction de tableau là parceque c'est là que la valeurs de fichiers va changer pour chacun des noms de fichier du repertoire concerné
mais j'ai aucune croix qui s'affiche
snif
si on décompose la parenthèse du IIf on a d'abord le If ensuite le then et ensuite le else c'est biens ça ?
sinon voila mon code complet
je pense que le problème vien du faite qu'il y a plusieurs valeurs dans Fichiers
(parcequ'il y a plusieurs fichiers dans le repertoire )
j'ai mis ma construction de tableau là parceque c'est là que la valeurs de fichiers va changer pour chacun des noms de fichier du repertoire concerné
Private Sub CommandButton2_Click()
Dim A As Integer
Dim Fs As Object, Files As Object, F As Object
Dim NomDossier As String
Dim Sf As Object, Fx As Object
Dim NomStagiaire As String
ListBox2.Clear
A = 2
Set Fs = CreateObject("Scripting.FileSystemObject")
NomDossier = "\\squeeze\exo\cours d'anglais\Suivi Stagiaire"
If NomDossier = "" Then Exit Sub
Set Dossier = Fs.GetFolder(NomDossier)
Set Files = Dossier.Files
If Files.Count <> 0 Then
Set F = Fs.GetFolder(NomDossier)
Set Sf = F.SubFolders
For Each Fx In Sf
A = A + 1
ListBox2.AddItem Fx.Name
Next
End If
End Sub
Private Sub ListBox2_Click()
Dim NomStagiaire As String
NomStagiaire = ListBox2.Value
fichiers = Dir("\\squeeze\exo\cours d'anglais\Suivi Stagiaire\" & NomStagiaire & "\")
ListBox1.Clear
Do While fichiers <> ""
ListBox1.AddItem fichiers
'I//écriture du tableau
'A)Le nom du stagiaire
Range("D3").Value = NomStagiaire
'B)Se Présenter
Range("E6").Value = IIf(fichier Like "*ValideSePresenter1*", "X", "")
Range("F6").Value = IIf(fichier Like "*EnCoursSePresenter1*", "X", "")
Range("E7").Value = IIf(fichier Like "*ValideSePresenter2*", "X", "")
Range("F7").Value = IIf(fichier Like "*EnCoursSePresenter2*", "X", "")
'C)Les Articles
Range("E8").Value = IIf(fichier Like "*ValideLesArticles1*", "X", "")
Range("F8").Value = IIf(fichier Like "*EnCoursLesArticles1*", "X", "")
Range("E9").Value = IIf(fichier Like "*ValideLesArticles2*", "X", "")
Range("F9").Value = IIf(fichier Like "*EnCoursLesArticles2*", "X", "")
Range("E10").Value = IIf(fichier Like "*ValideLesArticles3*", "X", "")
Range("F10").Value = IIf(fichier Like "*EnCoursLesArticles3*", "X", "")
fichiers = Dir()
Loop
End Sub
mais j'ai aucune croix qui s'affiche
snif
:s effectivement je ne suis pas assé rigoureux c'était des faute de frape dans le nom des "valideSePresenter1"
par contre je voudrais que si il y a 3 fichiers détecté il y ai 3 croix dans le tableau ce qui n'est pas le cas actuellement c'est à cause du ELSE "" mais je ne sais pas par quoi le remplacer
par contre je voudrais que si il y a 3 fichiers détecté il y ai 3 croix dans le tableau ce qui n'est pas le cas actuellement c'est à cause du ELSE "" mais je ne sais pas par quoi le remplacer
pour l'instant j'ai rajouté avant la boucle
et j'ai remplacé mais IIF par
je sais c'est trop moche je me sen honteux ! mais IIF ne peux pas s'écrire sans Else ou je me trompe ?
Range("E6,E7,E8,E9,E10,F6,F7,F8,F9,F10").Value = ""
et j'ai remplacé mais IIF par
If fichiers Like "*valideSePresenter1*" Then
Range("E6").Value = "X"
End If
je sais c'est trop moche je me sen honteux ! mais IIF ne peux pas s'écrire sans Else ou je me trompe ?
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumTest case excel
- ForumExcel condition ou
- ForumCalcul colonne excel avec condition
- ForumVba excel condition multiple
- ForumVba excel condition commence par
- ForumVba excel condition cellule
- ForumMacro excel condition multiple
- ForumMacro excel condition sur une cellule
- ForumMacro select case excel
- ForumExcel condition multiple
- Voir plus