Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de
l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais
excel ne envoie pas d'erreur de compilation
Sub Etiquette_Atelier()
'
Sheets("Feuil1").Select
Range("A1").Select
'
For Each ligne In ActiveSheet.UsedRange.Rows
Statut_ligne = Mid(ActiveCell.Value, 75, 3)
'
If Statut_ligne = "ATELIER" Then
'
OA = Mid(ActiveCell.Value, 2, 7) & Mid(ActiveCell.Value, 9, 3)
Programme = Mid(ActiveCell.Value, 126, 6) & Mid(ActiveCell.Value, 129, 4)
Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10)
Quantite = Mid(ActiveCell.Value, 116, 2)
'
Sheets("pour faire etiquettes at").Select
Range("A4").End(xlDown).Offset(1, 0).Select
Range(ActiveCell).Formula = "ATELIER"
Range(ActiveCell.Offset(1, 0)).Formula = Programme
Range(ActiveCell.Offset(2, 0)).Formula = Couleur
Range(ActiveCell.Offset(3, 0)).Formula = Quantite
End If
Next
End Sub
Salut Bruno Pour moi il ya une incohérence sur 2 instructions qui se suivent : Statut_ligne = Mid(ActiveCell.Value, 75, 3) If Statut_ligne = "ATELIER" Then
La première signifie que Statut_ligne est égale à un morceau de la valeur de la cellule active morceau qui démarre à la 75eme élément de celle-ci avec les 2 éléments suivantes soit globalement 3 éléments
La deuxième signifie si Statut_ligne = "ATELIER" alors et la suite
Comment est il possible qu'un paramètre puisse être égale à "ATELIER" qui représente 7 caractères alors qu'on lui donne juste avant une valeur à 3 caractères
Statut_ligne ne pourra jamais être égale à "ATELIER" et donc la suite du code ne pourra jamais avoir lieu
En modifiant la ligne comme ceci : Statut_ligne = Mid(ActiveCell.Value, 1, 7) Et mettant dans la cellule active le mot "ATELIER" je sollicite le reste de la macro
A toi donc de voir la correction à apporter ou nous donner plus de précision pour notre aide éventuelle
Au plaisir de te lire
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais excel ne envoie pas d'erreur de compilation
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A1").Select ' For Each ligne In ActiveSheet.UsedRange.Rows Statut_ligne = Mid(ActiveCell.Value, 75, 3) ' If Statut_ligne = "ATELIER" Then ' OA = Mid(ActiveCell.Value, 2, 7) & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Sheets("pour faire etiquettes at").Select Range("A4").End(xlDown).Offset(1, 0).Select Range(ActiveCell).Formula = "ATELIER" Range(ActiveCell.Offset(1, 0)).Formula = Programme Range(ActiveCell.Offset(2, 0)).Formula = Couleur Range(ActiveCell.Offset(3, 0)).Formula = Quantite End If Next End Sub
Salut Bruno
Pour moi il ya une incohérence sur 2 instructions qui se suivent :
Statut_ligne = Mid(ActiveCell.Value, 75, 3)
If Statut_ligne = "ATELIER" Then
La première signifie que Statut_ligne est égale à un morceau de la valeur de
la cellule active morceau qui démarre à la 75eme élément de celle-ci avec
les 2 éléments suivantes soit globalement 3 éléments
La deuxième signifie si Statut_ligne = "ATELIER" alors et la suite
Comment est il possible qu'un paramètre puisse être égale à "ATELIER" qui
représente 7 caractères alors qu'on lui donne juste avant une valeur à 3
caractères
Statut_ligne ne pourra jamais être égale à "ATELIER" et donc la suite du
code ne pourra jamais avoir lieu
En modifiant la ligne comme ceci :
Statut_ligne = Mid(ActiveCell.Value, 1, 7)
Et mettant dans la cellule active le mot "ATELIER" je sollicite le reste de
la macro
A toi donc de voir la correction à apporter ou nous donner plus de précision
pour notre aide éventuelle
Au plaisir de te lire
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de
l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais
excel ne envoie pas d'erreur de compilation
Sub Etiquette_Atelier()
'
Sheets("Feuil1").Select
Range("A1").Select
'
For Each ligne In ActiveSheet.UsedRange.Rows
Statut_ligne = Mid(ActiveCell.Value, 75, 3)
'
If Statut_ligne = "ATELIER" Then
'
OA = Mid(ActiveCell.Value, 2, 7) & Mid(ActiveCell.Value, 9, 3)
Programme = Mid(ActiveCell.Value, 126, 6) & Mid(ActiveCell.Value, 129, 4)
Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10)
Quantite = Mid(ActiveCell.Value, 116, 2)
'
Sheets("pour faire etiquettes at").Select
Range("A4").End(xlDown).Offset(1, 0).Select
Range(ActiveCell).Formula = "ATELIER"
Range(ActiveCell.Offset(1, 0)).Formula = Programme
Range(ActiveCell.Offset(2, 0)).Formula = Couleur
Range(ActiveCell.Offset(3, 0)).Formula = Quantite
End If
Next
End Sub
Salut Bruno Pour moi il ya une incohérence sur 2 instructions qui se suivent : Statut_ligne = Mid(ActiveCell.Value, 75, 3) If Statut_ligne = "ATELIER" Then
La première signifie que Statut_ligne est égale à un morceau de la valeur de la cellule active morceau qui démarre à la 75eme élément de celle-ci avec les 2 éléments suivantes soit globalement 3 éléments
La deuxième signifie si Statut_ligne = "ATELIER" alors et la suite
Comment est il possible qu'un paramètre puisse être égale à "ATELIER" qui représente 7 caractères alors qu'on lui donne juste avant une valeur à 3 caractères
Statut_ligne ne pourra jamais être égale à "ATELIER" et donc la suite du code ne pourra jamais avoir lieu
En modifiant la ligne comme ceci : Statut_ligne = Mid(ActiveCell.Value, 1, 7) Et mettant dans la cellule active le mot "ATELIER" je sollicite le reste de la macro
A toi donc de voir la correction à apporter ou nous donner plus de précision pour notre aide éventuelle
Au plaisir de te lire
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais excel ne envoie pas d'erreur de compilation
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A1").Select ' For Each ligne In ActiveSheet.UsedRange.Rows Statut_ligne = Mid(ActiveCell.Value, 75, 3) ' If Statut_ligne = "ATELIER" Then ' OA = Mid(ActiveCell.Value, 2, 7) & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Sheets("pour faire etiquettes at").Select Range("A4").End(xlDown).Offset(1, 0).Select Range(ActiveCell).Formula = "ATELIER" Range(ActiveCell.Offset(1, 0)).Formula = Programme Range(ActiveCell.Offset(2, 0)).Formula = Couleur Range(ActiveCell.Offset(3, 0)).Formula = Quantite End If Next End Sub
Pierre Fauconnier
Bonsoir
Je n'ai pas tout regardé, mais si Statut_ligne = Mid(ActiveCell.Value, 75, 3) alors, Statut_ligne ne sera jamais égal à "ATELIER"... puisque le nombre de caractères de Statut_Ligne sera 3... et ATELIER compte 7 lettres... Utilise la méthode "pas à pas" du debogueur pour tester ce qui se passe. Tu peux par exemple saisir ceci, dans la fenêtre d'exécution (CTRL+G) ? activesheet.UsedRange.Address lorsque la ligne "for each ligne..." est en jaune, pour voir la plage renvoyée par UsedRange...
Ok?
bruno a formulé la demande :
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais
-- Pierre Fauconnier Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
Bonsoir
Je n'ai pas tout regardé, mais si
Statut_ligne = Mid(ActiveCell.Value, 75, 3)
alors,
Statut_ligne ne sera jamais égal à "ATELIER"...
puisque le nombre de caractères de Statut_Ligne sera 3... et ATELIER
compte 7 lettres...
Utilise la méthode "pas à pas" du debogueur pour tester ce qui se
passe. Tu peux par exemple saisir ceci, dans la fenêtre d'exécution
(CTRL+G)
? activesheet.UsedRange.Address
lorsque la ligne "for each ligne..." est en jaune, pour voir la plage
renvoyée par UsedRange...
Ok?
bruno a formulé la demande :
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de
l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais
--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")
Je n'ai pas tout regardé, mais si Statut_ligne = Mid(ActiveCell.Value, 75, 3) alors, Statut_ligne ne sera jamais égal à "ATELIER"... puisque le nombre de caractères de Statut_Ligne sera 3... et ATELIER compte 7 lettres... Utilise la méthode "pas à pas" du debogueur pour tester ce qui se passe. Tu peux par exemple saisir ceci, dans la fenêtre d'exécution (CTRL+G) ? activesheet.UsedRange.Address lorsque la ligne "for each ligne..." est en jaune, pour voir la plage renvoyée par UsedRange...
Ok?
bruno a formulé la demande :
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais
-- Pierre Fauconnier Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
bruno
Effectivement FFo, ta réponse est exact, il y a une incohérence, je l'ai rectifié, mais le résultat est toujours identique :(
"FFO" a écrit dans le message de news:
Salut Bruno Pour moi il ya une incohérence sur 2 instructions qui se suivent : Statut_ligne = Mid(ActiveCell.Value, 75, 3) If Statut_ligne = "ATELIER" Then
La première signifie que Statut_ligne est égale à un morceau de la valeur de la cellule active morceau qui démarre à la 75eme élément de celle-ci avec les 2 éléments suivantes soit globalement 3 éléments
La deuxième signifie si Statut_ligne = "ATELIER" alors et la suite
Comment est il possible qu'un paramètre puisse être égale à "ATELIER" qui représente 7 caractères alors qu'on lui donne juste avant une valeur à 3 caractères
Statut_ligne ne pourra jamais être égale à "ATELIER" et donc la suite du code ne pourra jamais avoir lieu
En modifiant la ligne comme ceci : Statut_ligne = Mid(ActiveCell.Value, 1, 7) Et mettant dans la cellule active le mot "ATELIER" je sollicite le reste de la macro
A toi donc de voir la correction à apporter ou nous donner plus de précision pour notre aide éventuelle
Au plaisir de te lire
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais excel ne envoie pas d'erreur de compilation
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A1").Select ' For Each ligne In ActiveSheet.UsedRange.Rows Statut_ligne = Mid(ActiveCell.Value, 75, 3) ' If Statut_ligne = "ATELIER" Then ' OA = Mid(ActiveCell.Value, 2, 7) & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Sheets("pour faire etiquettes at").Select Range("A4").End(xlDown).Offset(1, 0).Select Range(ActiveCell).Formula = "ATELIER" Range(ActiveCell.Offset(1, 0)).Formula = Programme Range(ActiveCell.Offset(2, 0)).Formula = Couleur Range(ActiveCell.Offset(3, 0)).Formula = Quantite End If Next End Sub
Effectivement FFo, ta réponse est exact, il y a une incohérence, je l'ai
rectifié, mais le résultat est toujours identique :(
"FFO" <FFO@discussions.microsoft.com> a écrit dans le message de news:
AE90A5BC-5DA8-485C-A5CE-64AB55ED2EE6@microsoft.com...
Salut Bruno
Pour moi il ya une incohérence sur 2 instructions qui se suivent :
Statut_ligne = Mid(ActiveCell.Value, 75, 3)
If Statut_ligne = "ATELIER" Then
La première signifie que Statut_ligne est égale à un morceau de la valeur
de
la cellule active morceau qui démarre à la 75eme élément de celle-ci avec
les 2 éléments suivantes soit globalement 3 éléments
La deuxième signifie si Statut_ligne = "ATELIER" alors et la suite
Comment est il possible qu'un paramètre puisse être égale à "ATELIER" qui
représente 7 caractères alors qu'on lui donne juste avant une valeur à 3
caractères
Statut_ligne ne pourra jamais être égale à "ATELIER" et donc la suite du
code ne pourra jamais avoir lieu
En modifiant la ligne comme ceci :
Statut_ligne = Mid(ActiveCell.Value, 1, 7)
Et mettant dans la cellule active le mot "ATELIER" je sollicite le reste
de
la macro
A toi donc de voir la correction à apporter ou nous donner plus de
précision
pour notre aide éventuelle
Au plaisir de te lire
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de
l'execution, il n'y a que les 2 premières lignes qui sont interprétés,
mais
excel ne envoie pas d'erreur de compilation
Sub Etiquette_Atelier()
'
Sheets("Feuil1").Select
Range("A1").Select
'
For Each ligne In ActiveSheet.UsedRange.Rows
Statut_ligne = Mid(ActiveCell.Value, 75, 3)
'
If Statut_ligne = "ATELIER" Then
'
OA = Mid(ActiveCell.Value, 2, 7) & Mid(ActiveCell.Value, 9, 3)
Programme = Mid(ActiveCell.Value, 126, 6) & Mid(ActiveCell.Value, 129,
4)
Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229,
10)
Quantite = Mid(ActiveCell.Value, 116, 2)
'
Sheets("pour faire etiquettes at").Select
Range("A4").End(xlDown).Offset(1, 0).Select
Range(ActiveCell).Formula = "ATELIER"
Range(ActiveCell.Offset(1, 0)).Formula = Programme
Range(ActiveCell.Offset(2, 0)).Formula = Couleur
Range(ActiveCell.Offset(3, 0)).Formula = Quantite
End If
Next
End Sub
Effectivement FFo, ta réponse est exact, il y a une incohérence, je l'ai rectifié, mais le résultat est toujours identique :(
"FFO" a écrit dans le message de news:
Salut Bruno Pour moi il ya une incohérence sur 2 instructions qui se suivent : Statut_ligne = Mid(ActiveCell.Value, 75, 3) If Statut_ligne = "ATELIER" Then
La première signifie que Statut_ligne est égale à un morceau de la valeur de la cellule active morceau qui démarre à la 75eme élément de celle-ci avec les 2 éléments suivantes soit globalement 3 éléments
La deuxième signifie si Statut_ligne = "ATELIER" alors et la suite
Comment est il possible qu'un paramètre puisse être égale à "ATELIER" qui représente 7 caractères alors qu'on lui donne juste avant une valeur à 3 caractères
Statut_ligne ne pourra jamais être égale à "ATELIER" et donc la suite du code ne pourra jamais avoir lieu
En modifiant la ligne comme ceci : Statut_ligne = Mid(ActiveCell.Value, 1, 7) Et mettant dans la cellule active le mot "ATELIER" je sollicite le reste de la macro
A toi donc de voir la correction à apporter ou nous donner plus de précision pour notre aide éventuelle
Au plaisir de te lire
Je ne comprend pas pourquoi ce bout de code ne fonctionne pas, lors de l'execution, il n'y a que les 2 premières lignes qui sont interprétés, mais excel ne envoie pas d'erreur de compilation
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A1").Select ' For Each ligne In ActiveSheet.UsedRange.Rows Statut_ligne = Mid(ActiveCell.Value, 75, 3) ' If Statut_ligne = "ATELIER" Then ' OA = Mid(ActiveCell.Value, 2, 7) & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Sheets("pour faire etiquettes at").Select Range("A4").End(xlDown).Offset(1, 0).Select Range(ActiveCell).Formula = "ATELIER" Range(ActiveCell.Offset(1, 0)).Formula = Programme Range(ActiveCell.Offset(2, 0)).Formula = Couleur Range(ActiveCell.Offset(3, 0)).Formula = Quantite End If Next End Sub
Pierre Fauconnier
Le deuxième problème vient du fait que tu changes la feuille active à l'intérieur de la boucle for each ligne in ACTIVESHEET.UsedRange.rows, et que tu utilises des références à activecell alors que tu as changé de feuilles.
Utilise des objets Worksheet et Range, plutôt que de sélectionner des feuilles et des cellules.
J'utiliserais plutôt un code qui se servirait du nom VBA des feuilles (celui que tu vois dans les propriétés VBA de la feuille... Si le nom vba de Feuil1 est Feuil1 et celui de "pour faire etiquettes AT" est Feuil2 ( par exemple ), je coderais comme ceci for each ligne in feuil1.usedrange.rows ... ... Quantite = Mid(ActiveCell.Value, 116, 2) set cellule = feuil2.range("a4").End(xlDown).Offset(1, 0) cellule.formula = ... ... next ligne
Ok?
bruno a formulé la demande :
Effectivement FFo, ta réponse est exact, il y a une incohérence, je l'ai rectifié, mais le résultat est toujours identique :(
-- Pierre Fauconnier Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
Le deuxième problème vient du fait que tu changes la feuille active à
l'intérieur de la boucle
for each ligne in ACTIVESHEET.UsedRange.rows, et que tu utilises des
références à activecell alors que tu as changé de feuilles.
Utilise des objets Worksheet et Range, plutôt que de sélectionner des
feuilles et des cellules.
J'utiliserais plutôt un code qui se servirait du nom VBA des feuilles
(celui que tu vois dans les propriétés VBA de la feuille...
Si le nom vba de Feuil1 est Feuil1 et celui de "pour faire etiquettes
AT" est Feuil2 ( par exemple ), je coderais comme ceci
for each ligne in feuil1.usedrange.rows
...
...
Quantite = Mid(ActiveCell.Value, 116, 2)
set cellule = feuil2.range("a4").End(xlDown).Offset(1, 0)
cellule.formula = ...
...
next ligne
Ok?
bruno a formulé la demande :
Effectivement FFo, ta réponse est exact, il y a une incohérence, je l'ai
rectifié, mais le résultat est toujours identique :(
--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")
Le deuxième problème vient du fait que tu changes la feuille active à l'intérieur de la boucle for each ligne in ACTIVESHEET.UsedRange.rows, et que tu utilises des références à activecell alors que tu as changé de feuilles.
Utilise des objets Worksheet et Range, plutôt que de sélectionner des feuilles et des cellules.
J'utiliserais plutôt un code qui se servirait du nom VBA des feuilles (celui que tu vois dans les propriétés VBA de la feuille... Si le nom vba de Feuil1 est Feuil1 et celui de "pour faire etiquettes AT" est Feuil2 ( par exemple ), je coderais comme ceci for each ligne in feuil1.usedrange.rows ... ... Quantite = Mid(ActiveCell.Value, 116, 2) set cellule = feuil2.range("a4").End(xlDown).Offset(1, 0) cellule.formula = ... ... next ligne
Ok?
bruno a formulé la demande :
Effectivement FFo, ta réponse est exact, il y a une incohérence, je l'ai rectifié, mais le résultat est toujours identique :(
-- Pierre Fauconnier Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
bruno
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai toujours le même problème. Je vous remet le code corrigé pour voir si je n'ai pas rajouté des erreurs en essayant de suivre les conseils de Pierre.
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A3").Select ' For Each ligne In ActiveSheet.UsedRange.Rows Statut_ligne = Mid(ActiveCell.Value, 75, 8) ' If Statut_ligne = "ATELIER " Then ' OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0) cellule1.Formula = OA Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1) cellule2.Formula = Programme Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2) cellule3.Formula = Couleur Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3) cellule4.Formula = Quantite End If Next ligne End Sub
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai
toujours le même problème. Je vous remet le code corrigé pour voir si je
n'ai pas rajouté des erreurs en essayant de suivre les conseils de Pierre.
Sub Etiquette_Atelier()
'
Sheets("Feuil1").Select
Range("A3").Select
'
For Each ligne In ActiveSheet.UsedRange.Rows
Statut_ligne = Mid(ActiveCell.Value, 75, 8)
'
If Statut_ligne = "ATELIER " Then
'
OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3)
Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value,
129, 4)
Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10)
Quantite = Mid(ActiveCell.Value, 116, 2)
'
Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0)
cellule1.Formula = OA
Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1)
cellule2.Formula = Programme
Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2)
cellule3.Formula = Couleur
Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3)
cellule4.Formula = Quantite
End If
Next ligne
End Sub
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai toujours le même problème. Je vous remet le code corrigé pour voir si je n'ai pas rajouté des erreurs en essayant de suivre les conseils de Pierre.
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A3").Select ' For Each ligne In ActiveSheet.UsedRange.Rows Statut_ligne = Mid(ActiveCell.Value, 75, 8) ' If Statut_ligne = "ATELIER " Then ' OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0) cellule1.Formula = OA Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1) cellule2.Formula = Programme Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2) cellule3.Formula = Couleur Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3) cellule4.Formula = Quantite End If Next ligne End Sub
h2so4
"bruno" wrote in message news:OYP3$
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai toujours le même problème. Je vous remet le code corrigé pour voir si je n'ai pas rajouté des erreurs en essayant de suivre les conseils de Pierre.
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A3").Select ' For Each ligne In ActiveSheet.UsedRange.Rows
L'instruction suivante examine le contenu de la cellule active, qui est selon moi A3. il faudrait activer la cellule en fonction de la variable ligne et de la colonne dans laquelle se trouve le texte "ATELIER " à tester. worksheets("Feuil1").cells(ligne, 1).select : ' remplacer 1 par le numéro de colonne adéquat
Statut_ligne = Mid(ActiveCell.Value, 75, 8) ' If Statut_ligne = "ATELIER " Then
' OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0) cellule1.Formula = OA Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1) cellule2.Formula = Programme Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2) cellule3.Formula = Couleur Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3) cellule4.Formula = Quantite End If Next ligne End Sub
"bruno" <nospam-bruno.et.isa@wanadoo.fr> wrote in message
news:OYP3$yxmHHA.3760@TK2MSFTNGP05.phx.gbl...
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais
j'ai toujours le même problème. Je vous remet le code corrigé pour voir si
je n'ai pas rajouté des erreurs en essayant de suivre les conseils de
Pierre.
Sub Etiquette_Atelier()
'
Sheets("Feuil1").Select
Range("A3").Select
'
For Each ligne In ActiveSheet.UsedRange.Rows
L'instruction suivante examine le contenu de la cellule active, qui est
selon moi A3.
il faudrait activer la cellule en fonction de la variable ligne et de la
colonne dans laquelle se trouve le texte "ATELIER " à tester.
worksheets("Feuil1").cells(ligne, 1).select : ' remplacer 1 par le numéro de
colonne adéquat
Statut_ligne = Mid(ActiveCell.Value, 75, 8)
'
If Statut_ligne = "ATELIER " Then
'
OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3)
Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value,
129, 4)
Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10)
Quantite = Mid(ActiveCell.Value, 116, 2)
'
Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0)
cellule1.Formula = OA
Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1)
cellule2.Formula = Programme
Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2)
cellule3.Formula = Couleur
Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3)
cellule4.Formula = Quantite
End If
Next ligne
End Sub
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai toujours le même problème. Je vous remet le code corrigé pour voir si je n'ai pas rajouté des erreurs en essayant de suivre les conseils de Pierre.
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A3").Select ' For Each ligne In ActiveSheet.UsedRange.Rows
L'instruction suivante examine le contenu de la cellule active, qui est selon moi A3. il faudrait activer la cellule en fonction de la variable ligne et de la colonne dans laquelle se trouve le texte "ATELIER " à tester. worksheets("Feuil1").cells(ligne, 1).select : ' remplacer 1 par le numéro de colonne adéquat
Statut_ligne = Mid(ActiveCell.Value, 75, 8) ' If Statut_ligne = "ATELIER " Then
' OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0) cellule1.Formula = OA Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1) cellule2.Formula = Programme Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2) cellule3.Formula = Couleur Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3) cellule4.Formula = Quantite End If Next ligne End Sub
Pierre Fauconnier
Pourrais-tu nous expliquer, en français, c'est-à-dire sans code, ce que tu souhaites réaliser?
bruno a présenté l'énoncé suivant :
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai toujours le même problème.
-- Pierre Fauconnier Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
Pourrais-tu nous expliquer, en français, c'est-à-dire sans code, ce que
tu souhaites réaliser?
bruno a présenté l'énoncé suivant :
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai
toujours le même problème.
--
Pierre Fauconnier
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")
Pourrais-tu nous expliquer, en français, c'est-à-dire sans code, ce que tu souhaites réaliser?
bruno a présenté l'énoncé suivant :
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai toujours le même problème.
-- Pierre Fauconnier Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
jps
dis, pierre, t'arrêtes de me prendre la tête à l'aube rieuse avec tes citations à la chiche m'a eu (comme notera GD), steplé? peut-être faudrat-il que tu m'offres une triple pinte de bière alsacienne pour que je la comprenne (la citation, pas la bière :-))) jps
"Pierre Fauconnier" a écrit dans le message de news:
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
dis, pierre, t'arrêtes de me prendre la tête à l'aube rieuse avec tes
citations à la chiche m'a eu (comme notera GD), steplé? peut-être faudrat-il
que tu m'offres une triple pinte de bière alsacienne pour que je la
comprenne (la citation, pas la bière
:-)))
jps
"Pierre Fauconnier" <pierre.fauconnier@nospam.nospam.pfi.be> a écrit dans le
message de news: mn.a9607d75d37c30c4.74786@nospam.nospam.pfi.be...
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")
dis, pierre, t'arrêtes de me prendre la tête à l'aube rieuse avec tes citations à la chiche m'a eu (comme notera GD), steplé? peut-être faudrat-il que tu m'offres une triple pinte de bière alsacienne pour que je la comprenne (la citation, pas la bière :-))) jps
"Pierre Fauconnier" a écrit dans le message de news:
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
LSteph
;-) Mais non Jean-Paul! Ce sera maintenant...! ...précisément le moment où on l'apprécie le mieux(la bière !..pas la citation....
dis, pierre, t'arrêtes de me prendre la tête à l'aube rieuse avec tes citations à la chiche m'a eu (comme notera GD), steplé? peut-être faudrat-il que tu m'offres une triple pinte de bière alsacienne pour que je la comprenne (la citation, pas la bière :-))) jps
"Pierre Fauconnier" a écrit dans le message de news:
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
;-)
Mais non Jean-Paul!
Ce sera maintenant...!
...précisément le moment où on l'apprécie le mieux(la bière !..pas la
citation....
dis, pierre, t'arrêtes de me prendre la tête à l'aube rieuse avec tes
citations à la chiche m'a eu (comme notera GD), steplé? peut-être faudrat-il
que tu m'offres une triple pinte de bière alsacienne pour que je la
comprenne (la citation, pas la bière
:-)))
jps
"Pierre Fauconnier" <pierre.fauconnier@nospam.nospam.pfi.be> a écrit dans le
message de news: mn.a9607d75d37c30c4.74786@nospam.nospam.pfi.be...
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas
"maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du
moment présent")
;-) Mais non Jean-Paul! Ce sera maintenant...! ...précisément le moment où on l'apprécie le mieux(la bière !..pas la citation....
dis, pierre, t'arrêtes de me prendre la tête à l'aube rieuse avec tes citations à la chiche m'a eu (comme notera GD), steplé? peut-être faudrat-il que tu m'offres une triple pinte de bière alsacienne pour que je la comprenne (la citation, pas la bière :-))) jps
"Pierre Fauconnier" a écrit dans le message de news:
Il n'y a jamais eu un moment dans votre vie qui ne se passait pas "maintenant" et il n'y en aura jamais (Eckart Toll in "Le pouvoir du moment présent")
LSteph
Bonjour Bruno,
Cela laisse apparaître que tu as bien essayé de suivre les conseils de Pierre et FFO mais peut-être pas complètement.. il y a toujours ces .select et un doute sur le nombre de caractères 8 ou 7 , le défaut possible d'Ucase (si ATELIER en majuscule et avec ou pas cet espace au bout),...
outre ce qui t'as été suggèré, tu sembles vouloir fixer des variables diverses et variées plutôt des Range visiblement à partir d'autres variables composée de chaines de caractères parmi lesquelles une "Quantité". (Des déclarations avec un type seraient facultatives, sans doute, mais éclairciraientt quelque peu) Statut_Ligne doit il vraiment être redéfini à chaque boucle?
Donc (au lieu des .Select et répétitions d'activecell.value peut-être) déclarer pour utiliser des variables qui vont servir exemple: Dim mycell as range, Couleur as string Set mycellþuil1.[a3] Couleur = Mid(mycell, 211, 6)& "..."
A ce que propose Pierre (nous dire l'objectif) pourrais tu donc en plus, metttre un exemplaire de ton classeur par là: http://www.cjoint.com et nous redonner le lien sur ce fil, on y verra plus clair.
Cordialement.
LSteph
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai toujours le même problème. Je vous remet le code corrigé pour voir si je n'ai pas rajouté des erreurs en essayant de suivre les conseils de Pierre.
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A3").Select ' For Each ligne In ActiveSheet.UsedRange.Rows Statut_ligne = Mid(ActiveCell.Value, 75, 8) ' If Statut_ligne = "ATELIER " Then ' OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0) cellule1.Formula = OA Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1) cellule2.Formula = Programme Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2) cellule3.Formula = Couleur Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3) cellule4.Formula = Quantite End If Next ligne End Sub
Bonjour Bruno,
Cela laisse apparaître que tu as bien essayé de suivre les conseils de
Pierre et FFO mais peut-être pas complètement..
il y a toujours ces .select et un doute sur le nombre de caractères 8 ou
7 , le défaut possible d'Ucase (si ATELIER en majuscule et avec ou pas
cet espace au bout),...
outre ce qui t'as été suggèré, tu sembles vouloir fixer des variables
diverses et variées plutôt des Range visiblement à partir d'autres
variables composée de chaines de caractères parmi lesquelles une "Quantité".
(Des déclarations avec un type seraient facultatives, sans doute, mais
éclairciraientt quelque peu)
Statut_Ligne doit il vraiment être redéfini à chaque boucle?
Donc (au lieu des .Select et répétitions d'activecell.value peut-être)
déclarer pour utiliser des variables qui vont servir
exemple:
Dim mycell as range, Couleur as string
Set mycellþuil1.[a3]
Couleur = Mid(mycell, 211, 6)& "..."
A ce que propose Pierre (nous dire l'objectif) pourrais tu donc en plus,
metttre un exemplaire de ton classeur par là: http://www.cjoint.com
et nous redonner le lien sur ce fil, on y verra plus clair.
Cordialement.
LSteph
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai
toujours le même problème. Je vous remet le code corrigé pour voir si je
n'ai pas rajouté des erreurs en essayant de suivre les conseils de Pierre.
Sub Etiquette_Atelier()
'
Sheets("Feuil1").Select
Range("A3").Select
'
For Each ligne In ActiveSheet.UsedRange.Rows
Statut_ligne = Mid(ActiveCell.Value, 75, 8)
'
If Statut_ligne = "ATELIER " Then
'
OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3)
Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value,
129, 4)
Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10)
Quantite = Mid(ActiveCell.Value, 116, 2)
'
Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0)
cellule1.Formula = OA
Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1)
cellule2.Formula = Programme
Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2)
cellule3.Formula = Couleur
Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3)
cellule4.Formula = Quantite
End If
Next ligne
End Sub
Cela laisse apparaître que tu as bien essayé de suivre les conseils de Pierre et FFO mais peut-être pas complètement.. il y a toujours ces .select et un doute sur le nombre de caractères 8 ou 7 , le défaut possible d'Ucase (si ATELIER en majuscule et avec ou pas cet espace au bout),...
outre ce qui t'as été suggèré, tu sembles vouloir fixer des variables diverses et variées plutôt des Range visiblement à partir d'autres variables composée de chaines de caractères parmi lesquelles une "Quantité". (Des déclarations avec un type seraient facultatives, sans doute, mais éclairciraientt quelque peu) Statut_Ligne doit il vraiment être redéfini à chaque boucle?
Donc (au lieu des .Select et répétitions d'activecell.value peut-être) déclarer pour utiliser des variables qui vont servir exemple: Dim mycell as range, Couleur as string Set mycellþuil1.[a3] Couleur = Mid(mycell, 211, 6)& "..."
A ce que propose Pierre (nous dire l'objectif) pourrais tu donc en plus, metttre un exemplaire de ton classeur par là: http://www.cjoint.com et nous redonner le lien sur ce fil, on y verra plus clair.
Cordialement.
LSteph
J'ai corrigé le code en suivant les remarques de FFO et de Pierre, mais j'ai toujours le même problème. Je vous remet le code corrigé pour voir si je n'ai pas rajouté des erreurs en essayant de suivre les conseils de Pierre.
Sub Etiquette_Atelier() ' Sheets("Feuil1").Select Range("A3").Select ' For Each ligne In ActiveSheet.UsedRange.Rows Statut_ligne = Mid(ActiveCell.Value, 75, 8) ' If Statut_ligne = "ATELIER " Then ' OA = Mid(ActiveCell.Value, 2, 7) & "/" & Mid(ActiveCell.Value, 9, 3) Programme = Mid(ActiveCell.Value, 126, 6) & "/" & Mid(ActiveCell.Value, 129, 4) Couleur = Mid(ActiveCell.Value, 211, 6) & Mid(ActiveCell.Value, 229, 10) Quantite = Mid(ActiveCell.Value, 116, 2) ' Set cellule1 = Feuil4.Range("A4").End(xlDown).Offset(1, 0) cellule1.Formula = OA Set cellule2 = Feuil4.Range("A4").End(xlDown).Offset(1, 1) cellule2.Formula = Programme Set cellule3 = Feuil4.Range("A4").End(xlDown).Offset(1, 2) cellule3.Formula = Couleur Set cellule4 = Feuil4.Range("A4").End(xlDown).Offset(1, 3) cellule4.Formula = Quantite End If Next ligne End Sub