J'importe régulièrement un fichier tarif de quelques 2000 lignes par 30
colonnes que je mets en forme avec un macro. Il y a deux opérations que je
n'arrive pas à mettre en macro: est-ce que quelqu'un a des idées ?
1 Après importations les colonnes de prix s'affichent correctement mais ne
sont pas en format Nombre. Pour les convertir il y a deux techniques que
je connais:
- sélectionner la zone, cliquer sur la losange orange avec "!" et
Convertir.
- entrer 1 dans une cellule vide quelquepart, Copier, sélectionner la zone,
Collage Speciale/Multiplier.
Ces deux méthodes fonctionnent très bien en manuel, mais après
enregistrement dans un macro, ne font pas ce qu'on attend d'eux.
2 La liste est plus facile à lire et à naviguer si on sépare chaque groupe
de produits par une ligne vide. Dans le fichier importé il n'y en a pas,
comment les ajouter ? Existe-t-il une façon d'insérer une ligne vide à
chaque changement de contenu des cellules dans une colonne donnée ?
Logiquement je veux faire ceci:
pour les cellules de la colonne B descendre une à une chaque cellule
si le contenu de la cellule = celui de la cellule immédiatement
supérieure, aller une cellule en bas sans rien faire d'autre
si le contenu de la cellule n'est pas identique à celui de la cellule
supérieure, insérer une ligne vide au-dessus puis aller une cellule en bas
reboucler pour 2000 cellules.
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
Philippe.R
Bon{j,s}o{u,i}r, Pour le pb n°1 : sélectionner les colonnes en question et appliquer ce type d'instruction :
Sub conv() For Each c In Selection c.Value = c.Value + 0 Next c End Sub
Pour le pb n° 2, :
l'idée peut être mise en pratique de cette manière sur la colonne D
Sub inserlig() For i = 1 To Range("d9999").End(xlUp).Row If Cells(i + 1, "d").Value <> _ Cells(i, "d").Value Then Cells(i + 1, 4).EntireRow.Insert i = i + 1 End If Next i End Sub -- http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel Avec plaisir http://dj.joss.free.fr/trombine.htm Philippe.R "John Vernon" a écrit dans le message de news:
Bonjour,
J'importe régulièrement un fichier tarif de quelques 2000 lignes par 30 colonnes que je mets en forme avec un macro. Il y a deux opérations que je n'arrive pas à mettre en macro: est-ce que quelqu'un a des idées ?
1 Après importations les colonnes de prix s'affichent correctement mais ne sont pas en format Nombre. Pour les convertir il y a deux techniques que je connais: - sélectionner la zone, cliquer sur la losange orange avec "!" et Convertir. - entrer 1 dans une cellule vide quelquepart, Copier, sélectionner la zone, Collage Speciale/Multiplier. Ces deux méthodes fonctionnent très bien en manuel, mais après enregistrement dans un macro, ne font pas ce qu'on attend d'eux.
2 La liste est plus facile à lire et à naviguer si on sépare chaque groupe de produits par une ligne vide. Dans le fichier importé il n'y en a pas, comment les ajouter ? Existe-t-il une façon d'insérer une ligne vide à chaque changement de contenu des cellules dans une colonne donnée ? Logiquement je veux faire ceci: pour les cellules de la colonne B descendre une à une chaque cellule si le contenu de la cellule = celui de la cellule immédiatement supérieure, aller une cellule en bas sans rien faire d'autre si le contenu de la cellule n'est pas identique à celui de la cellule supérieure, insérer une ligne vide au-dessus puis aller une cellule en bas reboucler pour 2000 cellules.
Merci beacoup de vos lumières!
JV
Bon{j,s}o{u,i}r,
Pour le pb n°1 :
sélectionner les colonnes en question et appliquer ce type d'instruction :
Sub conv()
For Each c In Selection
c.Value = c.Value + 0
Next c
End Sub
Pour le pb n° 2, :
l'idée peut être mise en pratique de cette manière sur la colonne D
Sub inserlig()
For i = 1 To Range("d9999").End(xlUp).Row
If Cells(i + 1, "d").Value <> _
Cells(i, "d").Value Then
Cells(i + 1, 4).EntireRow.Insert
i = i + 1
End If
Next i
End Sub
--
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
"John Vernon" <john.vernon@orange.fr> a écrit dans le message de
news:O2UEe5GMIHA.4880@TK2MSFTNGP03.phx.gbl...
Bonjour,
J'importe régulièrement un fichier tarif de quelques 2000 lignes par 30
colonnes que je mets en forme avec un macro. Il y a deux opérations que
je
n'arrive pas à mettre en macro: est-ce que quelqu'un a des idées ?
1 Après importations les colonnes de prix s'affichent correctement mais
ne
sont pas en format Nombre. Pour les convertir il y a deux techniques que
je connais:
- sélectionner la zone, cliquer sur la losange orange avec "!" et
Convertir.
- entrer 1 dans une cellule vide quelquepart, Copier, sélectionner la
zone,
Collage Speciale/Multiplier.
Ces deux méthodes fonctionnent très bien en manuel, mais après
enregistrement dans un macro, ne font pas ce qu'on attend d'eux.
2 La liste est plus facile à lire et à naviguer si on sépare chaque
groupe
de produits par une ligne vide. Dans le fichier importé il n'y en a pas,
comment les ajouter ? Existe-t-il une façon d'insérer une ligne vide à
chaque changement de contenu des cellules dans une colonne donnée ?
Logiquement je veux faire ceci:
pour les cellules de la colonne B descendre une à une chaque cellule
si le contenu de la cellule = celui de la cellule immédiatement
supérieure, aller une cellule en bas sans rien faire d'autre
si le contenu de la cellule n'est pas identique à celui de la cellule
supérieure, insérer une ligne vide au-dessus puis aller une cellule en bas
reboucler pour 2000 cellules.
Bon{j,s}o{u,i}r, Pour le pb n°1 : sélectionner les colonnes en question et appliquer ce type d'instruction :
Sub conv() For Each c In Selection c.Value = c.Value + 0 Next c End Sub
Pour le pb n° 2, :
l'idée peut être mise en pratique de cette manière sur la colonne D
Sub inserlig() For i = 1 To Range("d9999").End(xlUp).Row If Cells(i + 1, "d").Value <> _ Cells(i, "d").Value Then Cells(i + 1, 4).EntireRow.Insert i = i + 1 End If Next i End Sub -- http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel Avec plaisir http://dj.joss.free.fr/trombine.htm Philippe.R "John Vernon" a écrit dans le message de news:
Bonjour,
J'importe régulièrement un fichier tarif de quelques 2000 lignes par 30 colonnes que je mets en forme avec un macro. Il y a deux opérations que je n'arrive pas à mettre en macro: est-ce que quelqu'un a des idées ?
1 Après importations les colonnes de prix s'affichent correctement mais ne sont pas en format Nombre. Pour les convertir il y a deux techniques que je connais: - sélectionner la zone, cliquer sur la losange orange avec "!" et Convertir. - entrer 1 dans une cellule vide quelquepart, Copier, sélectionner la zone, Collage Speciale/Multiplier. Ces deux méthodes fonctionnent très bien en manuel, mais après enregistrement dans un macro, ne font pas ce qu'on attend d'eux.
2 La liste est plus facile à lire et à naviguer si on sépare chaque groupe de produits par une ligne vide. Dans le fichier importé il n'y en a pas, comment les ajouter ? Existe-t-il une façon d'insérer une ligne vide à chaque changement de contenu des cellules dans une colonne donnée ? Logiquement je veux faire ceci: pour les cellules de la colonne B descendre une à une chaque cellule si le contenu de la cellule = celui de la cellule immédiatement supérieure, aller une cellule en bas sans rien faire d'autre si le contenu de la cellule n'est pas identique à celui de la cellule supérieure, insérer une ligne vide au-dessus puis aller une cellule en bas reboucler pour 2000 cellules.
Merci beacoup de vos lumières!
JV
John Vernon
Bonsoir,
Merci beaucoup, je vais les essayer.
JV
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:eoD%
Bon{j,s}o{u,i}r, Pour le pb n°1 : sélectionner les colonnes en question et appliquer ce type d'instruction :
Sub conv() For Each c In Selection c.Value = c.Value + 0 Next c End Sub
Pour le pb n° 2, :
l'idée peut être mise en pratique de cette manière sur la colonne D
Sub inserlig() For i = 1 To Range("d9999").End(xlUp).Row If Cells(i + 1, "d").Value <> _ Cells(i, "d").Value Then Cells(i + 1, 4).EntireRow.Insert i = i + 1 End If Next i End Sub -- http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel Avec plaisir http://dj.joss.free.fr/trombine.htm Philippe.R "John Vernon" a écrit dans le message de news:
Bonjour,
J'importe régulièrement un fichier tarif de quelques 2000 lignes par 30 colonnes que je mets en forme avec un macro. Il y a deux opérations que je n'arrive pas à mettre en macro: est-ce que quelqu'un a des idées ?
1 Après importations les colonnes de prix s'affichent correctement mais ne sont pas en format Nombre. Pour les convertir il y a deux techniques que je connais: - sélectionner la zone, cliquer sur la losange orange avec "!" et Convertir. - entrer 1 dans une cellule vide quelquepart, Copier, sélectionner la zone, Collage Speciale/Multiplier. Ces deux méthodes fonctionnent très bien en manuel, mais après enregistrement dans un macro, ne font pas ce qu'on attend d'eux.
2 La liste est plus facile à lire et à naviguer si on sépare chaque groupe de produits par une ligne vide. Dans le fichier importé il n'y en a pas, comment les ajouter ? Existe-t-il une façon d'insérer une ligne vide à chaque changement de contenu des cellules dans une colonne donnée ? Logiquement je veux faire ceci: pour les cellules de la colonne B descendre une à une chaque cellule si le contenu de la cellule = celui de la cellule immédiatement supérieure, aller une cellule en bas sans rien faire d'autre si le contenu de la cellule n'est pas identique à celui de la cellule supérieure, insérer une ligne vide au-dessus puis aller une cellule en bas reboucler pour 2000 cellules.
Merci beacoup de vos lumières!
JV
Bonsoir,
Merci beaucoup, je vais les essayer.
JV
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:eoD%23bVIMIHA.5244@TK2MSFTNGP03.phx.gbl...
Bon{j,s}o{u,i}r,
Pour le pb n°1 :
sélectionner les colonnes en question et appliquer ce type d'instruction :
Sub conv()
For Each c In Selection
c.Value = c.Value + 0
Next c
End Sub
Pour le pb n° 2, :
l'idée peut être mise en pratique de cette manière sur la colonne D
Sub inserlig()
For i = 1 To Range("d9999").End(xlUp).Row
If Cells(i + 1, "d").Value <> _
Cells(i, "d").Value Then
Cells(i + 1, 4).EntireRow.Insert
i = i + 1
End If
Next i
End Sub
--
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
"John Vernon" <john.vernon@orange.fr> a écrit dans le message de
news:O2UEe5GMIHA.4880@TK2MSFTNGP03.phx.gbl...
Bonjour,
J'importe régulièrement un fichier tarif de quelques 2000 lignes par 30
colonnes que je mets en forme avec un macro. Il y a deux opérations que
je
n'arrive pas à mettre en macro: est-ce que quelqu'un a des idées ?
1 Après importations les colonnes de prix s'affichent correctement mais
ne
sont pas en format Nombre. Pour les convertir il y a deux techniques
que
je connais:
- sélectionner la zone, cliquer sur la losange orange avec "!" et
Convertir.
- entrer 1 dans une cellule vide quelquepart, Copier, sélectionner la
zone,
Collage Speciale/Multiplier.
Ces deux méthodes fonctionnent très bien en manuel, mais après
enregistrement dans un macro, ne font pas ce qu'on attend d'eux.
2 La liste est plus facile à lire et à naviguer si on sépare chaque
groupe
de produits par une ligne vide. Dans le fichier importé il n'y en a pas,
comment les ajouter ? Existe-t-il une façon d'insérer une ligne vide à
chaque changement de contenu des cellules dans une colonne donnée ?
Logiquement je veux faire ceci:
pour les cellules de la colonne B descendre une à une chaque cellule
si le contenu de la cellule = celui de la cellule immédiatement
supérieure, aller une cellule en bas sans rien faire d'autre
si le contenu de la cellule n'est pas identique à celui de la cellule
supérieure, insérer une ligne vide au-dessus puis aller une cellule en
bas
reboucler pour 2000 cellules.
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:eoD%
Bon{j,s}o{u,i}r, Pour le pb n°1 : sélectionner les colonnes en question et appliquer ce type d'instruction :
Sub conv() For Each c In Selection c.Value = c.Value + 0 Next c End Sub
Pour le pb n° 2, :
l'idée peut être mise en pratique de cette manière sur la colonne D
Sub inserlig() For i = 1 To Range("d9999").End(xlUp).Row If Cells(i + 1, "d").Value <> _ Cells(i, "d").Value Then Cells(i + 1, 4).EntireRow.Insert i = i + 1 End If Next i End Sub -- http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel Avec plaisir http://dj.joss.free.fr/trombine.htm Philippe.R "John Vernon" a écrit dans le message de news:
Bonjour,
J'importe régulièrement un fichier tarif de quelques 2000 lignes par 30 colonnes que je mets en forme avec un macro. Il y a deux opérations que je n'arrive pas à mettre en macro: est-ce que quelqu'un a des idées ?
1 Après importations les colonnes de prix s'affichent correctement mais ne sont pas en format Nombre. Pour les convertir il y a deux techniques que je connais: - sélectionner la zone, cliquer sur la losange orange avec "!" et Convertir. - entrer 1 dans une cellule vide quelquepart, Copier, sélectionner la zone, Collage Speciale/Multiplier. Ces deux méthodes fonctionnent très bien en manuel, mais après enregistrement dans un macro, ne font pas ce qu'on attend d'eux.
2 La liste est plus facile à lire et à naviguer si on sépare chaque groupe de produits par une ligne vide. Dans le fichier importé il n'y en a pas, comment les ajouter ? Existe-t-il une façon d'insérer une ligne vide à chaque changement de contenu des cellules dans une colonne donnée ? Logiquement je veux faire ceci: pour les cellules de la colonne B descendre une à une chaque cellule si le contenu de la cellule = celui de la cellule immédiatement supérieure, aller une cellule en bas sans rien faire d'autre si le contenu de la cellule n'est pas identique à celui de la cellule supérieure, insérer une ligne vide au-dessus puis aller une cellule en bas reboucler pour 2000 cellules.