Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Salut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Salut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Salut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
FrançoiseSalut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
Françoise
Salut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
FrançoiseSalut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Rebonjour Françoise
Trés certainement à la recopie du code ces 2 lignes :
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
se sont scindées et mises l'une sous l'autre
Mets toi en bout de la première et fait un Suppr pour ramener la deuxième en
bout de celle-ci avec entre ces 2 morceaux un blanc
Attention la modification est à opérer à 2 endroits dans le code
Tu trouveras sur ce lien un fichier avec la Macro que tu pourras tester et
analyser pour mettre correctement en place le code
http://www.cijoint.fr/cij16044155435408.xls
Attention avec ce code tu auras le résultat dans le même fichier que celui
que tu traites
Il faudra de plus activer le code à partir du fichier à traiter
Sinon prends ma 2° version qui elle évite tous ces inconvénients
Donnes moi des nouvelles !!!!bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
FrançoiseSalut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Rebonjour Françoise
Trés certainement à la recopie du code ces 2 lignes :
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
se sont scindées et mises l'une sous l'autre
Mets toi en bout de la première et fait un Suppr pour ramener la deuxième en
bout de celle-ci avec entre ces 2 morceaux un blanc
Attention la modification est à opérer à 2 endroits dans le code
Tu trouveras sur ce lien un fichier avec la Macro que tu pourras tester et
analyser pour mettre correctement en place le code
http://www.cijoint.fr/cij16044155435408.xls
Attention avec ce code tu auras le résultat dans le même fichier que celui
que tu traites
Il faudra de plus activer le code à partir du fichier à traiter
Sinon prends ma 2° version qui elle évite tous ces inconvénients
Donnes moi des nouvelles !!!!
bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
Françoise
Salut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Rebonjour Françoise
Trés certainement à la recopie du code ces 2 lignes :
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
se sont scindées et mises l'une sous l'autre
Mets toi en bout de la première et fait un Suppr pour ramener la deuxième en
bout de celle-ci avec entre ces 2 morceaux un blanc
Attention la modification est à opérer à 2 endroits dans le code
Tu trouveras sur ce lien un fichier avec la Macro que tu pourras tester et
analyser pour mettre correctement en place le code
http://www.cijoint.fr/cij16044155435408.xls
Attention avec ce code tu auras le résultat dans le même fichier que celui
que tu traites
Il faudra de plus activer le code à partir du fichier à traiter
Sinon prends ma 2° version qui elle évite tous ces inconvénients
Donnes moi des nouvelles !!!!bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
FrançoiseSalut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Merci beaucoup, cela fonctionne impec (je n'ai pas encore testé avec 2
classeurs)
mais je m'aperçois que mon fournisseur m'a fait une petite feinte
supplémentaire, comme ils utilisent Excel comme Word, pour passer sur une
autre page ils ont ajouté des lignes vierges (ça je m'en suis occupée et les
ai supprimées via une macro) et ont répété le titre de la famille !! donc
lorsque je fais tourner ta macro, ça bloque puisqu'elle crée une feuille à
chaque titre en gras, et bien sur à un moment elle tombe sur le même titre
donc me dis dans VBA impossible de créer 2 feuilles qui portent le même nom
j'ai fait le test en supprimant les doublons et ça marche
=== > comment peux-t-on expliquer cela à la macro ???
vois tu une solution à ce problème ?
=== > peut être faut il créer d'abord une macro qui élimine les doublons sur les
titres en gras dans la colonne B ?
=== > As tu une lumineuse idée là dessus ?
FrançoiseRebonjour Françoise
Trés certainement à la recopie du code ces 2 lignes :
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
se sont scindées et mises l'une sous l'autre
Mets toi en bout de la première et fait un Suppr pour ramener la deuxième en
bout de celle-ci avec entre ces 2 morceaux un blanc
Attention la modification est à opérer à 2 endroits dans le code
Tu trouveras sur ce lien un fichier avec la Macro que tu pourras tester et
analyser pour mettre correctement en place le code
http://www.cijoint.fr/cij16044155435408.xls
Attention avec ce code tu auras le résultat dans le même fichier que celui
que tu traites
Il faudra de plus activer le code à partir du fichier à traiter
Sinon prends ma 2° version qui elle évite tous ces inconvénients
Donnes moi des nouvelles !!!!bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
FrançoiseSalut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Merci beaucoup, cela fonctionne impec (je n'ai pas encore testé avec 2
classeurs)
mais je m'aperçois que mon fournisseur m'a fait une petite feinte
supplémentaire, comme ils utilisent Excel comme Word, pour passer sur une
autre page ils ont ajouté des lignes vierges (ça je m'en suis occupée et les
ai supprimées via une macro) et ont répété le titre de la famille !! donc
lorsque je fais tourner ta macro, ça bloque puisqu'elle crée une feuille à
chaque titre en gras, et bien sur à un moment elle tombe sur le même titre
donc me dis dans VBA impossible de créer 2 feuilles qui portent le même nom
j'ai fait le test en supprimant les doublons et ça marche
=== > comment peux-t-on expliquer cela à la macro ???
vois tu une solution à ce problème ?
=== > peut être faut il créer d'abord une macro qui élimine les doublons sur les
titres en gras dans la colonne B ?
=== > As tu une lumineuse idée là dessus ?
Françoise
Rebonjour Françoise
Trés certainement à la recopie du code ces 2 lignes :
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
se sont scindées et mises l'une sous l'autre
Mets toi en bout de la première et fait un Suppr pour ramener la deuxième en
bout de celle-ci avec entre ces 2 morceaux un blanc
Attention la modification est à opérer à 2 endroits dans le code
Tu trouveras sur ce lien un fichier avec la Macro que tu pourras tester et
analyser pour mettre correctement en place le code
http://www.cijoint.fr/cij16044155435408.xls
Attention avec ce code tu auras le résultat dans le même fichier que celui
que tu traites
Il faudra de plus activer le code à partir du fichier à traiter
Sinon prends ma 2° version qui elle évite tous ces inconvénients
Donnes moi des nouvelles !!!!
bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
Françoise
Salut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!
Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Merci beaucoup, cela fonctionne impec (je n'ai pas encore testé avec 2
classeurs)
mais je m'aperçois que mon fournisseur m'a fait une petite feinte
supplémentaire, comme ils utilisent Excel comme Word, pour passer sur une
autre page ils ont ajouté des lignes vierges (ça je m'en suis occupée et les
ai supprimées via une macro) et ont répété le titre de la famille !! donc
lorsque je fais tourner ta macro, ça bloque puisqu'elle crée une feuille à
chaque titre en gras, et bien sur à un moment elle tombe sur le même titre
donc me dis dans VBA impossible de créer 2 feuilles qui portent le même nom
j'ai fait le test en supprimant les doublons et ça marche
=== > comment peux-t-on expliquer cela à la macro ???
vois tu une solution à ce problème ?
=== > peut être faut il créer d'abord une macro qui élimine les doublons sur les
titres en gras dans la colonne B ?
=== > As tu une lumineuse idée là dessus ?
FrançoiseRebonjour Françoise
Trés certainement à la recopie du code ces 2 lignes :
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
se sont scindées et mises l'une sous l'autre
Mets toi en bout de la première et fait un Suppr pour ramener la deuxième en
bout de celle-ci avec entre ces 2 morceaux un blanc
Attention la modification est à opérer à 2 endroits dans le code
Tu trouveras sur ce lien un fichier avec la Macro que tu pourras tester et
analyser pour mettre correctement en place le code
http://www.cijoint.fr/cij16044155435408.xls
Attention avec ce code tu auras le résultat dans le même fichier que celui
que tu traites
Il faudra de plus activer le code à partir du fichier à traiter
Sinon prends ma 2° version qui elle évite tous ces inconvénients
Donnes moi des nouvelles !!!!bonjour FFO,
bon ça a l'air de fonctionner mais bloque sur une erreur 438 = propriété ou
méthode non gérée par cet objet sur la ligne
Sheets(Nom).Range("A65535").End(xlUp)
en fait, cela crée bien la feuille avec le nom du titre cellule B trouvé en
gras, mais attend dans excel de coller les cellules, si je fais coller sur la
feuille excel, cela colle bien les lignes liées au titre
est-ce normal que tu ne mettes pas "Paste" à la fin de ligne
j'avoue que je suis un peu perdue dans la lecture du message d'erreur
il ne doit pas y avoir grand chose à rajouter
d'avance merci de ta réponse
FrançoiseSalut Françoise
Soit l'onglet Feuil1 à traiter
Je te propose ce code :
Sheets("Feuil1").Activate
n = 0
Do While Range("B1").Offset(i, 0).Row < Range("B65535").End(xlUp).Offset(1,
0).Row
If Range("B1").Offset(i, 0).Font.Bold = True Then
If n > 0 Then
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
End If
Ligne = Range("B1").Offset(i + 1, 0).Row
Nom = Range("B1").Offset(i, 0)
Sheets.Add.Name = Range("B1").Offset(i, 0)
n = 1
End If
i = i + 1
Sheets("Feuil1").Activate
Loop
Range(Range("B1").Offset(i - 1, 0), "B" & Ligne).EntireRow.Copy
Sheets(Nom).Range("A65535").End(xlUp)
Celà devrait convenir
Dis moi !!!!Bonjour à tous !
j'ai à mettre en place une macro un peu complexe (tout du moins pour moi) :
j'ai un fichier ARTICLES que je récupère de mon fournisseur mais qui est
présenté comme un document word, à savoir qu'au lieu d'avoir les différentes
données dans des cols différentes, ils ont mélangé celles-ci
ainsi
col A = référence
col B = désignation mais aussi la famille du produit uniquement identifié
car en caractères gras
Afin de créer un fichier que lequel je puisse travailler correctement
je voudrais qu'à chaque fois que la cellule B est en gras,
créer une nouvelle feuille nommée avec la valeur de cette cellule
ET
copier toutes les lignes situées sous ce titre dans cette nouvelle feuille
AINSI
j'obtiens une feuille par famille de produits
PENSEZ VOUS QUE CELA SOIT POSSIBLE VIA UNE MACRO ?
et quelle syntaxe utiliser ?
d'avance merci pour votre éclairage
Françoise
Bonjour FFO,
Encore une fois, merci car cela fonctionne merveilleusement bien
MAIS
décidément je me demande si je vais arriver à m'en sortir de ce fichier
m.......
car la macro butte dès qu'elle rencontre un nom de famille qui excède 31
car, là VBA me dit qu'il lui est impossible de créer une feuille avec un nom
dépassant 31 car, or j'ai regardé et vu que j'avais des familles qui
comptaient jusqu'à 45 car
crois tu qu'il soit possible de forcer le nombre de car pour le nommage de
feuille ?
ou dois-je d'abord modifier toutes les familles dont les noms excèdent 31
car manuellement, ce qui ne sera pas facile car les noms ne correspondront
plus au détail de la famille à créer
qu'en penses-tu ?
Bonjour FFO,
Encore une fois, merci car cela fonctionne merveilleusement bien
MAIS
décidément je me demande si je vais arriver à m'en sortir de ce fichier
m.......
car la macro butte dès qu'elle rencontre un nom de famille qui excède 31
car, là VBA me dit qu'il lui est impossible de créer une feuille avec un nom
dépassant 31 car, or j'ai regardé et vu que j'avais des familles qui
comptaient jusqu'à 45 car
crois tu qu'il soit possible de forcer le nombre de car pour le nommage de
feuille ?
ou dois-je d'abord modifier toutes les familles dont les noms excèdent 31
car manuellement, ce qui ne sera pas facile car les noms ne correspondront
plus au détail de la famille à créer
qu'en penses-tu ?
Bonjour FFO,
Encore une fois, merci car cela fonctionne merveilleusement bien
MAIS
décidément je me demande si je vais arriver à m'en sortir de ce fichier
m.......
car la macro butte dès qu'elle rencontre un nom de famille qui excède 31
car, là VBA me dit qu'il lui est impossible de créer une feuille avec un nom
dépassant 31 car, or j'ai regardé et vu que j'avais des familles qui
comptaient jusqu'à 45 car
crois tu qu'il soit possible de forcer le nombre de car pour le nommage de
feuille ?
ou dois-je d'abord modifier toutes les familles dont les noms excèdent 31
car manuellement, ce qui ne sera pas facile car les noms ne correspondront
plus au détail de la famille à créer
qu'en penses-tu ?
Bonjour FFO,
Encore une fois, merci car cela fonctionne merveilleusement bien
MAIS
décidément je me demande si je vais arriver à m'en sortir de ce fichier
m.......
car la macro butte dès qu'elle rencontre un nom de famille qui excède 31
car, là VBA me dit qu'il lui est impossible de créer une feuille avec un nom
dépassant 31 car, or j'ai regardé et vu que j'avais des familles qui
comptaient jusqu'à 45 car
crois tu qu'il soit possible de forcer le nombre de car pour le nommage de
feuille ?
ou dois-je d'abord modifier toutes les familles dont les noms excèdent 31
car manuellement, ce qui ne sera pas facile car les noms ne correspondront
plus au détail de la famille à créer
qu'en penses-tu ?
Bonjour FFO,
Encore une fois, merci car cela fonctionne merveilleusement bien
MAIS
décidément je me demande si je vais arriver à m'en sortir de ce fichier
m.......
car la macro butte dès qu'elle rencontre un nom de famille qui excède 31
car, là VBA me dit qu'il lui est impossible de créer une feuille avec un nom
dépassant 31 car, or j'ai regardé et vu que j'avais des familles qui
comptaient jusqu'à 45 car
crois tu qu'il soit possible de forcer le nombre de car pour le nommage de
feuille ?
ou dois-je d'abord modifier toutes les familles dont les noms excèdent 31
car manuellement, ce qui ne sera pas facile car les noms ne correspondront
plus au détail de la famille à créer
qu'en penses-tu ?
Bonjour FFO,
Encore une fois, merci car cela fonctionne merveilleusement bien
MAIS
décidément je me demande si je vais arriver à m'en sortir de ce fichier
m.......
car la macro butte dès qu'elle rencontre un nom de famille qui excède 31
car, là VBA me dit qu'il lui est impossible de créer une feuille avec un nom
dépassant 31 car, or j'ai regardé et vu que j'avais des familles qui
comptaient jusqu'à 45 car
crois tu qu'il soit possible de forcer le nombre de car pour le nommage de
feuille ?
ou dois-je d'abord modifier toutes les familles dont les noms excèdent 31
car manuellement, ce qui ne sera pas facile car les noms ne correspondront
plus au détail de la famille à créer
qu'en penses-tu ?