j'ai un fichier classé par nom dans la colonne D .
En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .
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
Lepage Stephane
"ptck" a écrit dans le message de news:
Bonjour à tous
j'ai un fichier classé par nom dans la colonne D . En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .
merci d'avance
Excel insère toujours ligne au dessus de la ligne
Tu dois donc atteindre la dernière cellule de la colonne et remonter d'une cellule à chaque foiS. Il faut sans doute le mettre dans une boucle For each c in ... @+
"ptck" <nospam-ptck@easyconnect.fr> a écrit dans le message de
news:uXRJ8LGrDHA.2772@TK2MSFTNGP12.phx.gbl...
Bonjour à tous
j'ai un fichier classé par nom dans la colonne D .
En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un
nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à
chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .
merci d'avance
Excel insère toujours ligne au dessus de la ligne
Tu dois donc atteindre la dernière cellule de la colonne et remonter d'une
cellule à chaque foiS.
Il faut sans doute le mettre dans une boucle For each c in ...
@+
j'ai un fichier classé par nom dans la colonne D . En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .
merci d'avance
Excel insère toujours ligne au dessus de la ligne
Tu dois donc atteindre la dernière cellule de la colonne et remonter d'une cellule à chaque foiS. Il faut sans doute le mettre dans une boucle For each c in ... @+
Lepage Stephane
Si tu veux trouver tout seul ne lis pas la suite
Attention il faut éventuellement l'adapter Pas de vides depuis la ligne1 de la colonne D pour démarrer sinon ça loop et reloooooooooooooop sans arrêt ..au secours ;;;Echap Il faut également prévoir tout ce que je n'aipas imaginé de ton tableau ex: cellules vides en plein milieu
Lorsque tu seras sûr qu'il n'y a plus de bug possible tu peux rajouter
Application.ScreenUpdating = False juste après la ligne sub Application.ScreenUpdating = True juste avant la ligne endsub en enlevant la quot ' .
***** Sub insbetween() 'Application.ScreenUpdating = False If ActiveCell <> Cells(2, 4) Then Do While i <> Cells(2, 4).Row Application.ActiveSheet.Cells(1, 4).Select Selection.End(xlDown).Select i = Selection.Row Selection.EntireRow.Insert Loop Else End If Application.ScreenUpdating = True End Sub ******
"ptck" a écrit dans le message de news:
Bonjour à tous
j'ai un fichier classé par nom dans la colonne D . En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .
merci d'avance
Si tu veux trouver tout seul ne lis pas la suite
Attention il faut éventuellement l'adapter
Pas de vides depuis la ligne1 de la colonne D pour démarrer
sinon ça loop et reloooooooooooooop sans arrêt ..au secours ;;;Echap
Il faut également prévoir tout ce que je n'aipas imaginé de ton tableau
ex: cellules vides en plein milieu
Lorsque tu seras sûr qu'il n'y a plus de bug possible
tu peux rajouter
Application.ScreenUpdating = False juste après la ligne sub
Application.ScreenUpdating = True juste avant la ligne endsub
en enlevant la quot ' .
*****
Sub insbetween()
'Application.ScreenUpdating = False
If ActiveCell <> Cells(2, 4) Then
Do While i <> Cells(2, 4).Row
Application.ActiveSheet.Cells(1, 4).Select
Selection.End(xlDown).Select
i = Selection.Row
Selection.EntireRow.Insert
Loop
Else
End If
Application.ScreenUpdating = True
End Sub
******
"ptck" <nospam-ptck@easyconnect.fr> a écrit dans le message de
news:uXRJ8LGrDHA.2772@TK2MSFTNGP12.phx.gbl...
Bonjour à tous
j'ai un fichier classé par nom dans la colonne D .
En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un
nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à
chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .
Attention il faut éventuellement l'adapter Pas de vides depuis la ligne1 de la colonne D pour démarrer sinon ça loop et reloooooooooooooop sans arrêt ..au secours ;;;Echap Il faut également prévoir tout ce que je n'aipas imaginé de ton tableau ex: cellules vides en plein milieu
Lorsque tu seras sûr qu'il n'y a plus de bug possible tu peux rajouter
Application.ScreenUpdating = False juste après la ligne sub Application.ScreenUpdating = True juste avant la ligne endsub en enlevant la quot ' .
***** Sub insbetween() 'Application.ScreenUpdating = False If ActiveCell <> Cells(2, 4) Then Do While i <> Cells(2, 4).Row Application.ActiveSheet.Cells(1, 4).Select Selection.End(xlDown).Select i = Selection.Row Selection.EntireRow.Insert Loop Else End If Application.ScreenUpdating = True End Sub ******
"ptck" a écrit dans le message de news:
Bonjour à tous
j'ai un fichier classé par nom dans la colonne D . En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .
merci d'avance
AV
....je voudrai insérer une ligne à chaque changement de nom dans la colonne D
L'utilisation (détournée) de la fonctionnalité Sous-Total convient très bien pour ce genre de manip en évitant une boucle :
Sub zz_InsertRow() Application.ScreenUpdating = False [D:D].Subtotal GroupBy:=1, Function:=xlCount, TotalList:=Array(1) With [D:D] .SpecialCells(xlCellTypeConstants, 2).EntireRow.Clear .Delete Shift:=xlToLeft End With Cells.ClearOutline End Sub
AV
....je voudrai insérer une ligne à chaque
changement de nom dans la colonne D
L'utilisation (détournée) de la fonctionnalité Sous-Total convient très bien
pour ce genre de manip en évitant une boucle :
Sub zz_InsertRow()
Application.ScreenUpdating = False
[D:D].Subtotal GroupBy:=1, Function:=xlCount, TotalList:=Array(1)
With [D:D]
.SpecialCells(xlCellTypeConstants, 2).EntireRow.Clear
.Delete Shift:=xlToLeft
End With
Cells.ClearOutline
End Sub
....je voudrai insérer une ligne à chaque changement de nom dans la colonne D
L'utilisation (détournée) de la fonctionnalité Sous-Total convient très bien pour ce genre de manip en évitant une boucle :
Sub zz_InsertRow() Application.ScreenUpdating = False [D:D].Subtotal GroupBy:=1, Function:=xlCount, TotalList:=Array(1) With [D:D] .SpecialCells(xlCellTypeConstants, 2).EntireRow.Clear .Delete Shift:=xlToLeft End With Cells.ClearOutline End Sub
AV
ptck
Merci à Stephane lepage et AV sans vous dans 100 ans j'étais encore là je vais de ce pas étudier vos deux macros.
ptck a écrit dans le message :
Bonjour à tous
j'ai un fichier classé par nom dans la colonne D . En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .
merci d'avance
Merci à Stephane lepage et AV sans vous dans 100 ans j'étais encore là
je vais de ce pas étudier vos deux macros.
ptck <nospam-ptck@easyconnect.fr> a écrit dans le message :
uXRJ8LGrDHA.2772@TK2MSFTNGP12.phx.gbl...
Bonjour à tous
j'ai un fichier classé par nom dans la colonne D .
En VBA j'ai réussi à insérer une ligne au début du fichier et mettre un
nom
en gras aux colonnes (je débute ) et je voudrai insérer une ligne à
chaque
changement de nom dans la colonne D. La longueur du fichier peut changer .