Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre
fauconnier ainsi que HS2O4, FFO etc...
m'ont donné quelques pistes et je les en remercie, mais malgré les
corrections apporté en suivant leurs conseils et mes efforts, cette macro ne
fonctionne toujours pas, auriez vous quelques pistes à me suggérer.
Je précises que je suis totalement débutant en vba.
Merci d'avance
Sub Etiquette_Atelier()
'
Feuil1.Select
'
Dim cellule As Range
Dim selection As Range
Dim cellule1 As Range
Dim cellule2 As Range
Dim cellule3 As Range
Dim cellule4 As Range
Dim OA As String
Dim Programme As String
Dim Couleur As String
Dim Quantite As String
'
Set selection = Range("A1:A350")
For Each cellule In selection.Rows
statut_ligne = Mid(cellule, 75, 8)
If statut_ligne = "atelier " Then
OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3)
Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129, 4)
Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10)
Quantite = Mid(cellule.Value, 116, 2)
'
Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0)
cellule1.Value = OA
Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1)
cellule2.Value = Programme
Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2)
cellule3.Value = Couleur
Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3)
cellule4.Value = Quantite
End If
Next cellule
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Les auteurs vont sûrement se présenter ....
Mais rapidement je te suggère 3 choses :
A ) il y a assez de nom possible pour désigner une variable de type Range sans utiliser un mot réservé du langage VBA à cet effet. Je fais référence à Set selection = Range("A1:A350")
B) Dans cette ligne de code : If statut_ligne = "atelier " Then Est-ce que l'espace après "atelier" est voulu ?
C ) quand tu compares 2 chaines de caractère, il est prudent de t'assurer que la casse des caractères n'influera pas sur le résultat à moins que cela soit désiré. au lieu d'écrire : If statut_ligne = "atelier " Then utilise plutôt : If Lcase(statut_ligne) = "atelier" Then
"bruno" a écrit dans le message de news:
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre fauconnier ainsi que HS2O4, FFO etc... m'ont donné quelques pistes et je les en remercie, mais malgré les corrections apporté en suivant leurs conseils et mes efforts, cette macro ne fonctionne toujours pas, auriez vous quelques pistes à me suggérer. Je précises que je suis totalement débutant en vba. Merci d'avance
Sub Etiquette_Atelier() ' Feuil1.Select ' Dim cellule As Range Dim selection As Range Dim cellule1 As Range Dim cellule2 As Range Dim cellule3 As Range Dim cellule4 As Range Dim OA As String Dim Programme As String Dim Couleur As String Dim Quantite As String ' Set selection = Range("A1:A350") For Each cellule In selection.Rows statut_ligne = Mid(cellule, 75, 8) If statut_ligne = "atelier " Then OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3) Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129, 4) Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10) Quantite = Mid(cellule.Value, 116, 2) ' Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0) cellule1.Value = OA Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1) cellule2.Value = Programme Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2) cellule3.Value = Couleur Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3) cellule4.Value = Quantite End If Next cellule End Sub
Les auteurs vont sûrement se présenter ....
Mais rapidement je te suggère 3 choses :
A ) il y a assez de nom possible pour désigner une variable
de type Range sans utiliser un mot réservé du langage
VBA à cet effet. Je fais référence à
Set selection = Range("A1:A350")
B) Dans cette ligne de code :
If statut_ligne = "atelier " Then
Est-ce que l'espace après "atelier" est voulu ?
C ) quand tu compares 2 chaines de caractère, il
est prudent de t'assurer que la casse des caractères
n'influera pas sur le résultat à moins que cela soit désiré.
au lieu d'écrire : If statut_ligne = "atelier " Then
utilise plutôt : If Lcase(statut_ligne) = "atelier" Then
"bruno" <nospam-bruno.et.isa@wanadoo.fr> a écrit dans le message de news:
eSpJCHxnHHA.2584@TK2MSFTNGP02.phx.gbl...
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre
fauconnier ainsi que HS2O4, FFO etc...
m'ont donné quelques pistes et je les en remercie, mais malgré les
corrections apporté en suivant leurs conseils et mes efforts, cette macro ne
fonctionne toujours pas, auriez vous quelques pistes à me suggérer.
Je précises que je suis totalement débutant en vba.
Merci d'avance
Sub Etiquette_Atelier()
'
Feuil1.Select
'
Dim cellule As Range
Dim selection As Range
Dim cellule1 As Range
Dim cellule2 As Range
Dim cellule3 As Range
Dim cellule4 As Range
Dim OA As String
Dim Programme As String
Dim Couleur As String
Dim Quantite As String
'
Set selection = Range("A1:A350")
For Each cellule In selection.Rows
statut_ligne = Mid(cellule, 75, 8)
If statut_ligne = "atelier " Then
OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3)
Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129, 4)
Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10)
Quantite = Mid(cellule.Value, 116, 2)
'
Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0)
cellule1.Value = OA
Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1)
cellule2.Value = Programme
Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2)
cellule3.Value = Couleur
Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3)
cellule4.Value = Quantite
End If
Next cellule
End Sub
A ) il y a assez de nom possible pour désigner une variable de type Range sans utiliser un mot réservé du langage VBA à cet effet. Je fais référence à Set selection = Range("A1:A350")
B) Dans cette ligne de code : If statut_ligne = "atelier " Then Est-ce que l'espace après "atelier" est voulu ?
C ) quand tu compares 2 chaines de caractère, il est prudent de t'assurer que la casse des caractères n'influera pas sur le résultat à moins que cela soit désiré. au lieu d'écrire : If statut_ligne = "atelier " Then utilise plutôt : If Lcase(statut_ligne) = "atelier" Then
"bruno" a écrit dans le message de news:
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre fauconnier ainsi que HS2O4, FFO etc... m'ont donné quelques pistes et je les en remercie, mais malgré les corrections apporté en suivant leurs conseils et mes efforts, cette macro ne fonctionne toujours pas, auriez vous quelques pistes à me suggérer. Je précises que je suis totalement débutant en vba. Merci d'avance
Sub Etiquette_Atelier() ' Feuil1.Select ' Dim cellule As Range Dim selection As Range Dim cellule1 As Range Dim cellule2 As Range Dim cellule3 As Range Dim cellule4 As Range Dim OA As String Dim Programme As String Dim Couleur As String Dim Quantite As String ' Set selection = Range("A1:A350") For Each cellule In selection.Rows statut_ligne = Mid(cellule, 75, 8) If statut_ligne = "atelier " Then OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3) Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129, 4) Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10) Quantite = Mid(cellule.Value, 116, 2) ' Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0) cellule1.Value = OA Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1) cellule2.Value = Programme Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2) cellule3.Value = Couleur Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3) cellule4.Value = Quantite End If Next cellule End Sub
h2so4
bonsoir,
je ne suis pas sur d'avoir compris exactement ce que tu cherches à faire,mais j'ai fait selon ma compréhension.
Sub Etiquette_Atelier() Dim cellule As Range
Dim OA As String Dim Programme As String Dim Couleur As String Dim Quantite As String
For Each cellule In _ Worksheets("Feuil1").Range("A1:A350").Rows statut_ligne = Mid(cellule, 75, 7) If LCase(statut_ligne) = "atelier" Then OA = Mid(cellule, 2, 7) & "/" _ & Mid(cellule.Value, 9, 3) Programme = Mid(cellule, 126, 6) & "/" _ & Mid(cellule, 129, 4) Couleur = Mid(cellule, 211, 6) & _ Mid(cellule, 229, 10) Quantite = Mid(cellule, 116, 2) ' With Worksheets("Feuil9").Range("A:A").End(xlDown) .Offset(1, 0) = OA .Offset(1, 1) = Programme .Offset(1, 2) = Couleur .Offset(1, 3) = Quantite End With End If Next cellule End Sub
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre fauconnier ainsi que HS2O4, FFO etc... m'ont donné quelques pistes et je les en remercie, mais malgré les corrections apporté en suivant leurs conseils et mes efforts, cette macro ne fonctionne toujours pas, auriez vous quelques pistes à me suggérer. Je précises que je suis totalement débutant en vba. Merci d'avance
Sub Etiquette_Atelier() ' Feuil1.Select ' Dim cellule As Range Dim selection As Range Dim cellule1 As Range Dim cellule2 As Range Dim cellule3 As Range Dim cellule4 As Range Dim OA As String Dim Programme As String Dim Couleur As String Dim Quantite As String ' Set selection = Range("A1:A350") For Each cellule In selection.Rows statut_ligne = Mid(cellule, 75, 8) If statut_ligne = "atelier " Then OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3) Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129, 4) Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10) Quantite = Mid(cellule.Value, 116, 2) ' Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0) cellule1.Value = OA Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1) cellule2.Value = Programme Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2) cellule3.Value = Couleur Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3) cellule4.Value = Quantite End If Next cellule End Sub
bonsoir,
je ne suis pas sur d'avoir compris exactement ce que tu cherches à
faire,mais j'ai fait selon ma compréhension.
Sub Etiquette_Atelier()
Dim cellule As Range
Dim OA As String
Dim Programme As String
Dim Couleur As String
Dim Quantite As String
For Each cellule In _
Worksheets("Feuil1").Range("A1:A350").Rows
statut_ligne = Mid(cellule, 75, 7)
If LCase(statut_ligne) = "atelier" Then
OA = Mid(cellule, 2, 7) & "/" _
& Mid(cellule.Value, 9, 3)
Programme = Mid(cellule, 126, 6) & "/" _
& Mid(cellule, 129, 4)
Couleur = Mid(cellule, 211, 6) & _
Mid(cellule, 229, 10)
Quantite = Mid(cellule, 116, 2)
'
With Worksheets("Feuil9").Range("A:A").End(xlDown)
.Offset(1, 0) = OA
.Offset(1, 1) = Programme
.Offset(1, 2) = Couleur
.Offset(1, 3) = Quantite
End With
End If
Next cellule
End Sub
--
h2so4
play triogical at http://www.triogical.com
"bruno" <nospam-bruno.et.isa@wanadoo.fr> a écrit dans le message de news:
eSpJCHxnHHA.2584@TK2MSFTNGP02.phx.gbl...
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre
fauconnier ainsi que HS2O4, FFO etc...
m'ont donné quelques pistes et je les en remercie, mais malgré les
corrections apporté en suivant leurs conseils et mes efforts, cette macro
ne
fonctionne toujours pas, auriez vous quelques pistes à me suggérer.
Je précises que je suis totalement débutant en vba.
Merci d'avance
Sub Etiquette_Atelier()
'
Feuil1.Select
'
Dim cellule As Range
Dim selection As Range
Dim cellule1 As Range
Dim cellule2 As Range
Dim cellule3 As Range
Dim cellule4 As Range
Dim OA As String
Dim Programme As String
Dim Couleur As String
Dim Quantite As String
'
Set selection = Range("A1:A350")
For Each cellule In selection.Rows
statut_ligne = Mid(cellule, 75, 8)
If statut_ligne = "atelier " Then
OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3)
Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129,
4)
Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10)
Quantite = Mid(cellule.Value, 116, 2)
'
Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0)
cellule1.Value = OA
Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1)
cellule2.Value = Programme
Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2)
cellule3.Value = Couleur
Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3)
cellule4.Value = Quantite
End If
Next cellule
End Sub
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre fauconnier ainsi que HS2O4, FFO etc... m'ont donné quelques pistes et je les en remercie, mais malgré les corrections apporté en suivant leurs conseils et mes efforts, cette macro ne fonctionne toujours pas, auriez vous quelques pistes à me suggérer. Je précises que je suis totalement débutant en vba. Merci d'avance
Sub Etiquette_Atelier() ' Feuil1.Select ' Dim cellule As Range Dim selection As Range Dim cellule1 As Range Dim cellule2 As Range Dim cellule3 As Range Dim cellule4 As Range Dim OA As String Dim Programme As String Dim Couleur As String Dim Quantite As String ' Set selection = Range("A1:A350") For Each cellule In selection.Rows statut_ligne = Mid(cellule, 75, 8) If statut_ligne = "atelier " Then OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3) Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129, 4) Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10) Quantite = Mid(cellule.Value, 116, 2) ' Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0) cellule1.Value = OA Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1) cellule2.Value = Programme Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2) cellule3.Value = Couleur Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3) cellule4.Value = Quantite End If Next cellule End Sub
bruno
Pour répondre aux questions de MichDenis :
A) pas de probmème je ne savais pas que ce nom était réservé par vba, j'avais trouvé ça dans un bouquin, donc je renomme ma variable
B)oui l'espace est voulu car la plage est de 8 caractères, et je teste si = au mot atelier qui en comporte 7
C) je ne connaissais pas cette expression, et il s'avère que c'était apparement un des point bloquant de ma macro, merci donc pour cette remarque très pertinente. Je ne connaissais pas Lcase, je vais aller bouquiner pour voir comment celà fonctionne.
"MichDenis" a écrit dans le message de news:
Les auteurs vont sûrement se présenter ....
Mais rapidement je te suggère 3 choses :
A ) il y a assez de nom possible pour désigner une variable de type Range sans utiliser un mot réservé du langage VBA à cet effet. Je fais référence à Set selection = Range("A1:A350")
B) Dans cette ligne de code : If statut_ligne = "atelier " Then Est-ce que l'espace après "atelier" est voulu ?
C ) quand tu compares 2 chaines de caractère, il est prudent de t'assurer que la casse des caractères n'influera pas sur le résultat à moins que cela soit désiré. au lieu d'écrire : If statut_ligne = "atelier " Then utilise plutôt : If Lcase(statut_ligne) = "atelier" Then
"bruno" a écrit dans le message de news:
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre fauconnier ainsi que HS2O4, FFO etc... m'ont donné quelques pistes et je les en remercie, mais malgré les corrections apporté en suivant leurs conseils et mes efforts, cette macro ne fonctionne toujours pas, auriez vous quelques pistes à me suggérer. Je précises que je suis totalement débutant en vba. Merci d'avance
Sub Etiquette_Atelier() ' Feuil1.Select ' Dim cellule As Range Dim selection As Range Dim cellule1 As Range Dim cellule2 As Range Dim cellule3 As Range Dim cellule4 As Range Dim OA As String Dim Programme As String Dim Couleur As String Dim Quantite As String ' Set selection = Range("A1:A350") For Each cellule In selection.Rows statut_ligne = Mid(cellule, 75, 8) If statut_ligne = "atelier " Then OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3) Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129, 4) Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10) Quantite = Mid(cellule.Value, 116, 2) ' Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0) cellule1.Value = OA Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1) cellule2.Value = Programme Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2) cellule3.Value = Couleur Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3) cellule4.Value = Quantite End If Next cellule End Sub
Pour répondre aux questions de MichDenis :
A) pas de probmème je ne savais pas que ce nom était réservé par vba,
j'avais trouvé ça dans un bouquin, donc je renomme ma variable
B)oui l'espace est voulu car la plage est de 8 caractères, et je teste si =
au mot atelier qui en comporte 7
C) je ne connaissais pas cette expression, et il s'avère que c'était
apparement un des point bloquant de ma macro, merci donc pour cette remarque
très pertinente. Je ne connaissais pas Lcase, je vais aller bouquiner pour
voir comment celà fonctionne.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
uuHlgNxnHHA.2584@TK2MSFTNGP02.phx.gbl...
Les auteurs vont sûrement se présenter ....
Mais rapidement je te suggère 3 choses :
A ) il y a assez de nom possible pour désigner une variable
de type Range sans utiliser un mot réservé du langage
VBA à cet effet. Je fais référence à
Set selection = Range("A1:A350")
B) Dans cette ligne de code :
If statut_ligne = "atelier " Then
Est-ce que l'espace après "atelier" est voulu ?
C ) quand tu compares 2 chaines de caractère, il
est prudent de t'assurer que la casse des caractères
n'influera pas sur le résultat à moins que cela soit désiré.
au lieu d'écrire : If statut_ligne = "atelier " Then
utilise plutôt : If Lcase(statut_ligne) = "atelier" Then
"bruno" <nospam-bruno.et.isa@wanadoo.fr> a écrit dans le message de news:
eSpJCHxnHHA.2584@TK2MSFTNGP02.phx.gbl...
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre
fauconnier ainsi que HS2O4, FFO etc...
m'ont donné quelques pistes et je les en remercie, mais malgré les
corrections apporté en suivant leurs conseils et mes efforts, cette macro
ne
fonctionne toujours pas, auriez vous quelques pistes à me suggérer.
Je précises que je suis totalement débutant en vba.
Merci d'avance
Sub Etiquette_Atelier()
'
Feuil1.Select
'
Dim cellule As Range
Dim selection As Range
Dim cellule1 As Range
Dim cellule2 As Range
Dim cellule3 As Range
Dim cellule4 As Range
Dim OA As String
Dim Programme As String
Dim Couleur As String
Dim Quantite As String
'
Set selection = Range("A1:A350")
For Each cellule In selection.Rows
statut_ligne = Mid(cellule, 75, 8)
If statut_ligne = "atelier " Then
OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3)
Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129,
4)
Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10)
Quantite = Mid(cellule.Value, 116, 2)
'
Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0)
cellule1.Value = OA
Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1)
cellule2.Value = Programme
Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2)
cellule3.Value = Couleur
Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3)
cellule4.Value = Quantite
End If
Next cellule
End Sub
A) pas de probmème je ne savais pas que ce nom était réservé par vba, j'avais trouvé ça dans un bouquin, donc je renomme ma variable
B)oui l'espace est voulu car la plage est de 8 caractères, et je teste si = au mot atelier qui en comporte 7
C) je ne connaissais pas cette expression, et il s'avère que c'était apparement un des point bloquant de ma macro, merci donc pour cette remarque très pertinente. Je ne connaissais pas Lcase, je vais aller bouquiner pour voir comment celà fonctionne.
"MichDenis" a écrit dans le message de news:
Les auteurs vont sûrement se présenter ....
Mais rapidement je te suggère 3 choses :
A ) il y a assez de nom possible pour désigner une variable de type Range sans utiliser un mot réservé du langage VBA à cet effet. Je fais référence à Set selection = Range("A1:A350")
B) Dans cette ligne de code : If statut_ligne = "atelier " Then Est-ce que l'espace après "atelier" est voulu ?
C ) quand tu compares 2 chaines de caractère, il est prudent de t'assurer que la casse des caractères n'influera pas sur le résultat à moins que cela soit désiré. au lieu d'écrire : If statut_ligne = "atelier " Then utilise plutôt : If Lcase(statut_ligne) = "atelier" Then
"bruno" a écrit dans le message de news:
Voici quelque jours, j'ai déjà réclamé de l'aide sur ce forum et pierre fauconnier ainsi que HS2O4, FFO etc... m'ont donné quelques pistes et je les en remercie, mais malgré les corrections apporté en suivant leurs conseils et mes efforts, cette macro ne fonctionne toujours pas, auriez vous quelques pistes à me suggérer. Je précises que je suis totalement débutant en vba. Merci d'avance
Sub Etiquette_Atelier() ' Feuil1.Select ' Dim cellule As Range Dim selection As Range Dim cellule1 As Range Dim cellule2 As Range Dim cellule3 As Range Dim cellule4 As Range Dim OA As String Dim Programme As String Dim Couleur As String Dim Quantite As String ' Set selection = Range("A1:A350") For Each cellule In selection.Rows statut_ligne = Mid(cellule, 75, 8) If statut_ligne = "atelier " Then OA = Mid(cellule.Value, 2, 7) & "/" & Mid(cellule.Value, 9, 3) Programme = Mid(cellule.Value, 126, 6) & "/" & Mid(cellule.Value, 129, 4) Couleur = Mid(cellule.Value, 211, 6) & Mid(cellule.Value, 229, 10) Quantite = Mid(cellule.Value, 116, 2) ' Set cellule1 = Feuil9.Range("A4").End(xlDown).Offset(1, 0) cellule1.Value = OA Set cellule2 = Feuil9.Range("A4").End(xlDown).Offset(1, 1) cellule2.Value = Programme Set cellule3 = Feuil9.Range("A4").End(xlDown).Offset(1, 2) cellule3.Value = Couleur Set cellule4 = Feuil9.Range("A4").End(xlDown).Offset(1, 3) cellule4.Value = Quantite End If Next cellule End Sub
JLuc
*Bonjour bruno*, Que contient ta cellule pour devoir prendre des textes si loin ?? Tu pourrais peut être splitter les données dans un tableau, ce serait sans doute plus simple à gerer !
Exemple : cellule = "Rapport;Atelier;Nom;Situation;bleu;100" MaTable = Split(cellule, ";")
ou, si le séparateur est un espace : cellule = "Rapport Atelier Nom Situation bleu 100" MaTable = Split(cellule)
Et tu obtiens : Matable(1) --> "Rapport" ... MaTable(5) --> "bleu"
*Bonjour bruno*,
Que contient ta cellule pour devoir prendre des textes si loin ??
Tu pourrais peut être splitter les données dans un tableau, ce serait
sans doute plus simple à gerer !
Exemple :
cellule = "Rapport;Atelier;Nom;Situation;bleu;100"
MaTable = Split(cellule, ";")
ou, si le séparateur est un espace :
cellule = "Rapport Atelier Nom Situation bleu 100"
MaTable = Split(cellule)
Et tu obtiens :
Matable(1) --> "Rapport"
...
MaTable(5) --> "bleu"
*Bonjour bruno*, Que contient ta cellule pour devoir prendre des textes si loin ?? Tu pourrais peut être splitter les données dans un tableau, ce serait sans doute plus simple à gerer !
Exemple : cellule = "Rapport;Atelier;Nom;Situation;bleu;100" MaTable = Split(cellule, ";")
ou, si le séparateur est un espace : cellule = "Rapport Atelier Nom Situation bleu 100" MaTable = Split(cellule)
Et tu obtiens : Matable(1) --> "Rapport" ... MaTable(5) --> "bleu"
Merci à tous pour votre aide, ma macro fonctionne, entre autre grace au Lcase, mercià tous pour votre aide et vos conseils, grace à vous j'ai progressé un peu plus.
"JLuc" a écrit dans le message de news:
*Bonjour bruno*, Que contient ta cellule pour devoir prendre des textes si loin ?? Tu pourrais peut être splitter les données dans un tableau, ce serait sans doute plus simple à gerer !
Exemple : cellule = "Rapport;Atelier;Nom;Situation;bleu;100" MaTable = Split(cellule, ";")
ou, si le séparateur est un espace : cellule = "Rapport Atelier Nom Situation bleu 100" MaTable = Split(cellule)
Et tu obtiens : Matable(1) --> "Rapport" ... MaTable(5) --> "bleu"
Merci à tous pour votre aide, ma macro fonctionne, entre autre grace au
Lcase, mercià tous pour votre aide et vos conseils, grace à vous j'ai
progressé un peu plus.
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.d26c7d75b96cc40b.40692@free.fr.ns...
*Bonjour bruno*,
Que contient ta cellule pour devoir prendre des textes si loin ??
Tu pourrais peut être splitter les données dans un tableau, ce serait sans
doute plus simple à gerer !
Exemple :
cellule = "Rapport;Atelier;Nom;Situation;bleu;100"
MaTable = Split(cellule, ";")
ou, si le séparateur est un espace :
cellule = "Rapport Atelier Nom Situation bleu 100"
MaTable = Split(cellule)
Et tu obtiens :
Matable(1) --> "Rapport"
...
MaTable(5) --> "bleu"
Merci à tous pour votre aide, ma macro fonctionne, entre autre grace au Lcase, mercià tous pour votre aide et vos conseils, grace à vous j'ai progressé un peu plus.
"JLuc" a écrit dans le message de news:
*Bonjour bruno*, Que contient ta cellule pour devoir prendre des textes si loin ?? Tu pourrais peut être splitter les données dans un tableau, ce serait sans doute plus simple à gerer !
Exemple : cellule = "Rapport;Atelier;Nom;Situation;bleu;100" MaTable = Split(cellule, ";")
ou, si le séparateur est un espace : cellule = "Rapport Atelier Nom Situation bleu 100" MaTable = Split(cellule)
Et tu obtiens : Matable(1) --> "Rapport" ... MaTable(5) --> "bleu"