bonjour,
j'ai un fichier qui regroupe mon plan d'action
quand je clique sur mon bouton "rajouter une action" une ligne s'ajoute
=E0 mon fichier et le num=E9ro de mon action est incr=E9ment=E9
automatiquement dans la colonne A. 1,2,3..
Je voudrai faire la m=EAme chose mais cette fois-ci avec une lettre en
plus
Q1, Q2, Q3.... ( Q pour Qualit=E9 :) )
et l=E0 mon code ne marche plus comme j'ai une chaine de caract=E8re
Merci de votre aide
bonjour, j'ai un fichier qui regroupe mon plan d'action quand je clique sur mon bouton "rajouter une action" une ligne s'ajoute à mon fichier et le numéro de mon action est incrémenté automatiquement dans la colonne A. 1,2,3.. Je voudrai faire la même chose mais cette fois-ci avec une lettre en plus Q1, Q2, Q3.... ( Q pour Qualité :) ) et là mon code ne marche plus comme j'ai une chaine de caractère Merci de votre aide
Ce que tu as écris marche quelque soit le contenu des cellules. tu commences à la ligne 9 et tant que le contenu de la cellule est different de "rien", tu boucle en incrementant le numero de ligne. Quand tu sort de la boucle, j pointe sur la ligne dont la cellule est "vide"
-- JLuc
c.estrem@gmail.com avait soumis l'idée :
bonjour,
j'ai un fichier qui regroupe mon plan d'action
quand je clique sur mon bouton "rajouter une action" une ligne s'ajoute
à mon fichier et le numéro de mon action est incrémenté
automatiquement dans la colonne A. 1,2,3..
Je voudrai faire la même chose mais cette fois-ci avec une lettre en
plus
Q1, Q2, Q3.... ( Q pour Qualité :) )
et là mon code ne marche plus comme j'ai une chaine de caractère
Merci de votre aide
Ce que tu as écris marche quelque soit le contenu des cellules.
tu commences à la ligne 9 et tant que le contenu de la cellule est
different de "rien", tu boucle en incrementant le numero de ligne.
Quand tu sort de la boucle, j pointe sur la ligne dont la cellule est
"vide"
bonjour, j'ai un fichier qui regroupe mon plan d'action quand je clique sur mon bouton "rajouter une action" une ligne s'ajoute à mon fichier et le numéro de mon action est incrémenté automatiquement dans la colonne A. 1,2,3.. Je voudrai faire la même chose mais cette fois-ci avec une lettre en plus Q1, Q2, Q3.... ( Q pour Qualité :) ) et là mon code ne marche plus comme j'ai une chaine de caractère Merci de votre aide
Ce que tu as écris marche quelque soit le contenu des cellules. tu commences à la ligne 9 et tant que le contenu de la cellule est different de "rien", tu boucle en incrementant le numero de ligne. Quand tu sort de la boucle, j pointe sur la ligne dont la cellule est "vide"
-- JLuc
JLuc
avait soumis l'idée :
bonjour, j'ai un fichier qui regroupe mon plan d'action quand je clique sur mon bouton "rajouter une action" une ligne s'ajoute à mon fichier et le numéro de mon action est incrémenté automatiquement dans la colonne A. 1,2,3.. Je voudrai faire la même chose mais cette fois-ci avec une lettre en plus Q1, Q2, Q3.... ( Q pour Qualité :) ) et là mon code ne marche plus comme j'ai une chaine de caractère Merci de votre aide
Pour récuperer l'ancienne valeur et lui ajouter 1 : Sheets("En cours").Cells(j, 1) = "Q" & _ Val(Mid(Sheets("En cours").Cells(j - 1, 1),2)) + 1
-- JLuc
c.estrem@gmail.com avait soumis l'idée :
bonjour,
j'ai un fichier qui regroupe mon plan d'action
quand je clique sur mon bouton "rajouter une action" une ligne s'ajoute
à mon fichier et le numéro de mon action est incrémenté
automatiquement dans la colonne A. 1,2,3..
Je voudrai faire la même chose mais cette fois-ci avec une lettre en
plus
Q1, Q2, Q3.... ( Q pour Qualité :) )
et là mon code ne marche plus comme j'ai une chaine de caractère
Merci de votre aide
bonjour, j'ai un fichier qui regroupe mon plan d'action quand je clique sur mon bouton "rajouter une action" une ligne s'ajoute à mon fichier et le numéro de mon action est incrémenté automatiquement dans la colonne A. 1,2,3.. Je voudrai faire la même chose mais cette fois-ci avec une lettre en plus Q1, Q2, Q3.... ( Q pour Qualité :) ) et là mon code ne marche plus comme j'ai une chaine de caractère Merci de votre aide
petite remarque : tu n'initialises pas ta variable j avant de lancer la boucle while c'est pour ca que la macro ne veut pas s'éxecuter question : est-ce normal que tu fais un while sans incrémenter ? je m'esplique, je ferais plutôt qqch genre
Wend car si j'ai bien compris, tu cherches la première ligne inocuppée de
ta colonne 1 !! attention, si la ligne 1 est innocuppée, tu plantes rapidement (Val(Mid(Sheets("En cours").Cells(j - 1, 1), 2)) + 1) car il va chercher cells(j-1,1) où j -1 = 0 !! a moins que je ne me trompe...
bonne après_midi cé
Ca marche pas trop encore, la macro ne ve pas être éxecuter... :(
petite remarque :
tu n'initialises pas ta variable j avant de lancer la boucle while
c'est pour ca que la macro ne veut pas s'éxecuter
question :
est-ce normal que tu fais un while sans incrémenter ?
je m'esplique, je ferais plutôt qqch genre
Wend
car si j'ai bien compris, tu cherches la première ligne inocuppée de
ta colonne 1
!! attention, si la ligne 1 est innocuppée, tu plantes rapidement
(Val(Mid(Sheets("En cours").Cells(j - 1, 1), 2)) + 1) car il va
chercher cells(j-1,1) où j -1 = 0 !!
a moins que je ne me trompe...
bonne après_midi
cé
Ca marche pas trop encore, la macro ne ve pas être éxecuter... :(
petite remarque : tu n'initialises pas ta variable j avant de lancer la boucle while c'est pour ca que la macro ne veut pas s'éxecuter question : est-ce normal que tu fais un while sans incrémenter ? je m'esplique, je ferais plutôt qqch genre
Wend car si j'ai bien compris, tu cherches la première ligne inocuppée de
ta colonne 1 !! attention, si la ligne 1 est innocuppée, tu plantes rapidement (Val(Mid(Sheets("En cours").Cells(j - 1, 1), 2)) + 1) car il va chercher cells(j-1,1) où j -1 = 0 !! a moins que je ne me trompe...
bonne après_midi cé
Ca marche pas trop encore, la macro ne ve pas être éxecuter... :(
Ca marche pas trop encore, la macro ne ve pas être éxecuter... :(
Private Sub Ajouter_Click()
Dim i As Integer, j As Integer ' Déclarer j comme Long : Dim j As Long
' Ceci à cause de la limitation de l'integer (+/-32768) si tu as plus de ' 33000 lignes...
While Sheets("En cours").Cells(j, 1) <> ""
' Cette boucle ne devrait être utiliser qu'une seule fois, lorsque tu ' veux mettre le Q. Donc a mettre dans une macro indepandante ' De plus, il faut penser à incrémenter la variable j
' Ici, pour récuper la première ligne vide : j = Sheets("En cours").Range("A65536").End(xlup).Row + 1 ' Et pour lui affecter la nouvelle incrémentation : Sheets("En cours").Cells(j, 1) = _ Val(Mid(Sheets("En cours").Cells(j - 1, 1),2)) + 1
================ Sub Renumerote() Dim J As Long j = 1 While Sheets("En cours").Cells(j, 1) <> "" Sheets("En cours").Cells(j, 1) = "Q" & Sheets("En cours").Cells(j, 1) j = j + 1 Wend End Sub
Private Sub Ajouter_Click() Dim i As Integer, j As Long j = Sheets("En cours").Range("A65536").End(xlup).Row + 1 Sheets("En cours").Cells(j, 1) = _ Val(Mid(Sheets("En cours").Cells(j - 1, 1),2)) + 1 For i = 10 To 14: Sheets("En cours").Cells(j, i) = ".": Next Sheets("En cours").Cells(j, 2) = Sheets("En cours").Cells(5, 3) Sheets("En cours").Cells(j, 2).Copy Sheets("En cours").Cells(j, 2).PasteSpecial Paste:=xlValues, _ Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse _ Application.CutCopyMode = False Sheets("En cours").Cells(j, 3).Select ... ... End Sub
Voila, essaie comme çà
-- JLuc
ATTENTION !!
c.estrem@gmail.com avait soumis l'idée :
Ca marche pas trop encore, la macro ne ve pas être éxecuter... :(
Private Sub Ajouter_Click()
Dim i As Integer, j As Integer
' Déclarer j comme Long : Dim j As Long
' Ceci à cause de la limitation de l'integer (+/-32768) si tu as plus
de
' 33000 lignes...
While Sheets("En cours").Cells(j, 1) <> ""
' Cette boucle ne devrait être utiliser qu'une seule fois, lorsque tu
' veux mettre le Q. Donc a mettre dans une macro indepandante
' De plus, il faut penser à incrémenter la variable j
' Ici, pour récuper la première ligne vide :
j = Sheets("En cours").Range("A65536").End(xlup).Row + 1
' Et pour lui affecter la nouvelle incrémentation :
Sheets("En cours").Cells(j, 1) = _
Val(Mid(Sheets("En cours").Cells(j - 1, 1),2)) + 1
================ Sub Renumerote()
Dim J As Long
j = 1
While Sheets("En cours").Cells(j, 1) <> ""
Sheets("En cours").Cells(j, 1) = "Q" & Sheets("En cours").Cells(j,
1)
j = j + 1
Wend
End Sub
Private Sub Ajouter_Click()
Dim i As Integer, j As Long
j = Sheets("En cours").Range("A65536").End(xlup).Row + 1
Sheets("En cours").Cells(j, 1) = _
Val(Mid(Sheets("En cours").Cells(j - 1, 1),2)) + 1
For i = 10 To 14: Sheets("En cours").Cells(j, i) = ".": Next
Sheets("En cours").Cells(j, 2) = Sheets("En cours").Cells(5, 3)
Sheets("En cours").Cells(j, 2).Copy
Sheets("En cours").Cells(j, 2).PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse _
Application.CutCopyMode = False
Sheets("En cours").Cells(j, 3).Select
...
...
End Sub
Ca marche pas trop encore, la macro ne ve pas être éxecuter... :(
Private Sub Ajouter_Click()
Dim i As Integer, j As Integer ' Déclarer j comme Long : Dim j As Long
' Ceci à cause de la limitation de l'integer (+/-32768) si tu as plus de ' 33000 lignes...
While Sheets("En cours").Cells(j, 1) <> ""
' Cette boucle ne devrait être utiliser qu'une seule fois, lorsque tu ' veux mettre le Q. Donc a mettre dans une macro indepandante ' De plus, il faut penser à incrémenter la variable j
' Ici, pour récuper la première ligne vide : j = Sheets("En cours").Range("A65536").End(xlup).Row + 1 ' Et pour lui affecter la nouvelle incrémentation : Sheets("En cours").Cells(j, 1) = _ Val(Mid(Sheets("En cours").Cells(j - 1, 1),2)) + 1
================ Sub Renumerote() Dim J As Long j = 1 While Sheets("En cours").Cells(j, 1) <> "" Sheets("En cours").Cells(j, 1) = "Q" & Sheets("En cours").Cells(j, 1) j = j + 1 Wend End Sub
Private Sub Ajouter_Click() Dim i As Integer, j As Long j = Sheets("En cours").Range("A65536").End(xlup).Row + 1 Sheets("En cours").Cells(j, 1) = _ Val(Mid(Sheets("En cours").Cells(j - 1, 1),2)) + 1 For i = 10 To 14: Sheets("En cours").Cells(j, i) = ".": Next Sheets("En cours").Cells(j, 2) = Sheets("En cours").Cells(5, 3) Sheets("En cours").Cells(j, 2).Copy Sheets("En cours").Cells(j, 2).PasteSpecial Paste:=xlValues, _ Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse _ Application.CutCopyMode = False Sheets("En cours").Cells(j, 3).Select ... ... End Sub
Voila, essaie comme çà
-- JLuc
JLuc
Céline avait soumis l'idée :
!! attention, si la ligne 1 est innocuppée, tu plantes rapidement (Val(Mid(Sheets("En cours").Cells(j - 1, 1), 2)) + 1) car il va chercher cells(j-1,1) où j -1 = 0 !! a moins que je ne me trompe...
Tu ne te trompe pas, dans son post d'origine, j est initialisé à 9 :')
-- JLuc
Céline avait soumis l'idée :
!! attention, si la ligne 1 est innocuppée, tu plantes rapidement
(Val(Mid(Sheets("En cours").Cells(j - 1, 1), 2)) + 1) car il va
chercher cells(j-1,1) où j -1 = 0 !!
a moins que je ne me trompe...
Tu ne te trompe pas, dans son post d'origine, j est initialisé à 9
:')
!! attention, si la ligne 1 est innocuppée, tu plantes rapidement (Val(Mid(Sheets("En cours").Cells(j - 1, 1), 2)) + 1) car il va chercher cells(j-1,1) où j -1 = 0 !! a moins que je ne me trompe...
Tu ne te trompe pas, dans son post d'origine, j est initialisé à 9 :')
-- JLuc
JLuc
JLuc avait soumis l'idée : ReATTENTION !! J doit être initialisé à 9 et pas à 1 ;-)
-- JLuc
JLuc avait soumis l'idée :
ReATTENTION !!
J doit être initialisé à 9 et pas à 1 ;-)
JLuc avait soumis l'idée : ReATTENTION !! J doit être initialisé à 9 et pas à 1 ;-)
-- JLuc
;)
question : quel est l'intéret d'un while par rapport à do... loop si ce n'est que Excel aime la redondance en matière de vocabulaire ?
JLuc
Céline avait soumis l'idée :
JLuc avait soumis l'idée : ReATTENTION !! J doit être initialisé à 9 et pas à 1 ;-)
-- JLuc
;)
question : quel est l'intéret d'un while par rapport à do... loop si ce n'est que Excel aime la redondance en matière de vocabulaire ?
En gros, il y en a peu. Chacun utilise celle qu'il préfère. Avec un While, tu peux tester une condition à chaque boucle. Avec un For, il faut tester dans la boucle si tu veux arrêter et sortir de la boucle Exemples équivalents : i = 1 While i < 10 ... Wend
ou : For i = 1 To 9 ... Next
Par contre, si tu veux tester la valeur d'une cellule :
While ActiveCell <> "Ma valeur" ActiveCell.Offset(1, 0) Wend
Qu'avec un For : For i = 1 To Range("A65536").End(xlup).Row If Cells(i, 1) = "Ma valeur" Then Exit For Next
Si tu veux en savoir plus, va ici : http://xlwiki.free.fr/wiki/wakka.php?wiki=BouCles
-- JLuc
Céline avait soumis l'idée :
JLuc avait soumis l'idée :
ReATTENTION !!
J doit être initialisé à 9 et pas à 1 ;-)
--
JLuc
;)
question :
quel est l'intéret d'un while par rapport à do... loop
si ce n'est que Excel aime la redondance en matière de vocabulaire ?
En gros, il y en a peu. Chacun utilise celle qu'il préfère.
Avec un While, tu peux tester une condition à chaque boucle.
Avec un For, il faut tester dans la boucle si tu veux arrêter et sortir
de la boucle
Exemples équivalents :
i = 1
While i < 10
...
Wend
ou :
For i = 1 To 9
...
Next
Par contre, si tu veux tester la valeur d'une cellule :
While ActiveCell <> "Ma valeur"
ActiveCell.Offset(1, 0)
Wend
Qu'avec un For :
For i = 1 To Range("A65536").End(xlup).Row
If Cells(i, 1) = "Ma valeur" Then Exit For
Next
Si tu veux en savoir plus, va ici :
http://xlwiki.free.fr/wiki/wakka.php?wiki=BouCles
JLuc avait soumis l'idée : ReATTENTION !! J doit être initialisé à 9 et pas à 1 ;-)
-- JLuc
;)
question : quel est l'intéret d'un while par rapport à do... loop si ce n'est que Excel aime la redondance en matière de vocabulaire ?
En gros, il y en a peu. Chacun utilise celle qu'il préfère. Avec un While, tu peux tester une condition à chaque boucle. Avec un For, il faut tester dans la boucle si tu veux arrêter et sortir de la boucle Exemples équivalents : i = 1 While i < 10 ... Wend
ou : For i = 1 To 9 ... Next
Par contre, si tu veux tester la valeur d'une cellule :
While ActiveCell <> "Ma valeur" ActiveCell.Offset(1, 0) Wend
Qu'avec un For : For i = 1 To Range("A65536").End(xlup).Row If Cells(i, 1) = "Ma valeur" Then Exit For Next
Si tu veux en savoir plus, va ici : http://xlwiki.free.fr/wiki/wakka.php?wiki=BouCles
-- JLuc
Pierre Fauconnier
Bonsoir
A ma connaissance, il n'y a pas de différence entre
Do While...Loop et While ...Wend
Par contre, avec While... Wend (ou Do While... Loop), il y aura toujours un test AVANT la boucle, et donc il n'y aura peut-être aucune boucle exécutée.
Do, en revanche, peut être utilisé en plaçant le While APRES la boucle Do... Loop While ... Avec cette construction, la boucle est exécutée au moins une fois.
Do permet aussi un bouclage sans condition (boucle infinie) avec un test à l'intérieur de la boucle (c'est mieux...) pour interrompre l'exécution du code restant dans la boucle et sortir de la boucle Do ... If Condition=True Then Exit Do ... Loop
Ok?
-- Pierre Fauconnier () (Skype: pierre_fauconnier) "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Céline" a écrit dans le message de news:
JLuc avait soumis l'idée : ReATTENTION !! J doit être initialisé à 9 et pas à 1 ;-)
-- JLuc
;)
question : quel est l'intéret d'un while par rapport à do... loop si ce n'est que Excel aime la redondance en matière de vocabulaire ?
Bonsoir
A ma connaissance, il n'y a pas de différence entre
Do While...Loop
et
While ...Wend
Par contre, avec While... Wend (ou Do While... Loop), il y aura toujours un
test AVANT la boucle, et donc il n'y aura peut-être aucune boucle exécutée.
Do, en revanche, peut être utilisé en plaçant le While APRES la boucle
Do... Loop While ...
Avec cette construction, la boucle est exécutée au moins une fois.
Do permet aussi un bouclage sans condition (boucle infinie) avec un test à
l'intérieur de la boucle (c'est mieux...) pour interrompre l'exécution du
code restant dans la boucle et sortir de la boucle
Do
...
If Condition=True Then Exit Do
...
Loop
Ok?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam) (Skype:
pierre_fauconnier)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Céline" <celine.michel1@gmail.com> a écrit dans le message de news:
1159282610.599365.303690@i3g2000cwc.googlegroups.com...
JLuc avait soumis l'idée :
ReATTENTION !!
J doit être initialisé à 9 et pas à 1 ;-)
--
JLuc
;)
question :
quel est l'intéret d'un while par rapport à do... loop
si ce n'est que Excel aime la redondance en matière de vocabulaire ?
A ma connaissance, il n'y a pas de différence entre
Do While...Loop et While ...Wend
Par contre, avec While... Wend (ou Do While... Loop), il y aura toujours un test AVANT la boucle, et donc il n'y aura peut-être aucune boucle exécutée.
Do, en revanche, peut être utilisé en plaçant le While APRES la boucle Do... Loop While ... Avec cette construction, la boucle est exécutée au moins une fois.
Do permet aussi un bouclage sans condition (boucle infinie) avec un test à l'intérieur de la boucle (c'est mieux...) pour interrompre l'exécution du code restant dans la boucle et sortir de la boucle Do ... If Condition=True Then Exit Do ... Loop
Ok?
-- Pierre Fauconnier () (Skype: pierre_fauconnier) "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Céline" a écrit dans le message de news:
JLuc avait soumis l'idée : ReATTENTION !! J doit être initialisé à 9 et pas à 1 ;-)
-- JLuc
;)
question : quel est l'intéret d'un while par rapport à do... loop si ce n'est que Excel aime la redondance en matière de vocabulaire ?