VBA problème d'ajout de ligne avec excel
Résolu
Haseo
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
OhMichel -
OhMichel -
Bonjour;
voila je développe un petit macro sous excel pour que dans la premier colone a chaque foi que je rencontre le Caractère : en 1er position, un nouvelle ligne vienne s'intercalé entre la ligne ou le ":" a été trouvé et la ligne précédente.
mon problème est que le code suivant ne fonctionne pas a chaque foi qu'il trouve ":" et je ne comprend pas pq voici le code
sub Feuille()
Dim ligne As Integer
Dim LigneMax As Integer
Dim NomFeuille As String
Dim ValCell As String
Dim Caract As String
NomFeuille = InputBox(" Nom de la feuille a traité", "Feuille", "")
LigneMax = inputBox("Nombre de ligne a traité", Ligne", 0)
LigneMax = LigneMax * 2
for ligne = 1 To LigneMax
ValCell = WorkSheets(NomFeuille).Cells(ligne, 1). vallue
Caract = Mid(ValCell, 1, 1)
if Caract = ":" Then
WorkSheets(NomFeuille).Cells(ligne, 1).EntireRow.Insert
End IF
ligne = ligne + 1
Next
End sub
voila le code
en ce qui conserne le fichier sur le quelle j'ai ce problème je peut vous l'envoyer par E-mail.
Merci pour votre attention
et merci davance pour vos réponse
voila je développe un petit macro sous excel pour que dans la premier colone a chaque foi que je rencontre le Caractère : en 1er position, un nouvelle ligne vienne s'intercalé entre la ligne ou le ":" a été trouvé et la ligne précédente.
mon problème est que le code suivant ne fonctionne pas a chaque foi qu'il trouve ":" et je ne comprend pas pq voici le code
sub Feuille()
Dim ligne As Integer
Dim LigneMax As Integer
Dim NomFeuille As String
Dim ValCell As String
Dim Caract As String
NomFeuille = InputBox(" Nom de la feuille a traité", "Feuille", "")
LigneMax = inputBox("Nombre de ligne a traité", Ligne", 0)
LigneMax = LigneMax * 2
for ligne = 1 To LigneMax
ValCell = WorkSheets(NomFeuille).Cells(ligne, 1). vallue
Caract = Mid(ValCell, 1, 1)
if Caract = ":" Then
WorkSheets(NomFeuille).Cells(ligne, 1).EntireRow.Insert
End IF
ligne = ligne + 1
Next
End sub
voila le code
en ce qui conserne le fichier sur le quelle j'ai ce problème je peut vous l'envoyer par E-mail.
Merci pour votre attention
et merci davance pour vos réponse
A voir également:
- VBA problème d'ajout de ligne avec excel
- Aller à la ligne excel - Guide
- Partage de photos en ligne - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Formule somme excel ligne - Guide
2 réponses
bonjour haseo,
il n afaut pas utiliser une boucle For/Next si tu insères ou détruits des lignes, car sinon le compteur va être "corrompu".
Do/Loop est plus indiqué :
il n afaut pas utiliser une boucle For/Next si tu insères ou détruits des lignes, car sinon le compteur va être "corrompu".
Do/Loop est plus indiqué :
ligne = 1 Do Until WorkSheets(NomFeuille).Cells(ligne, 1).Value ="" If Left(WorkSheets(NomFeuille).Cells(ligne, 1). Value, 1) =":" Then WorkSheets(NomFeuille).Cells(ligne, 1).EntireRow.Insert End If ligne = ligne + 1 Loop
Merci
pour cette aide bien précieuse
il ne faut pas oublier de mettre un Ligne = Ligne +1
ligne = 1
Do Until WorkSheets(NomFeuille).Cells(ligne, 1).Value =""
If Left(WorkSheets(NomFeuille).Cells(ligne, 1). Value, 1) =":" Then
WorkSheets(NomFeuille).Cells(ligne, 1).EntireRow.Insert
ligne = ligne +1
End If
ligne = ligne + 1
Loop
dans le IF autrement on rentre dans une boucle infinie
pour cette aide bien précieuse
il ne faut pas oublier de mettre un Ligne = Ligne +1
ligne = 1
Do Until WorkSheets(NomFeuille).Cells(ligne, 1).Value =""
If Left(WorkSheets(NomFeuille).Cells(ligne, 1). Value, 1) =":" Then
WorkSheets(NomFeuille).Cells(ligne, 1).EntireRow.Insert
ligne = ligne +1
End If
ligne = ligne + 1
Loop
dans le IF autrement on rentre dans une boucle infinie