Boucle sans do
Résolu/Fermé4 réponses
Bonjour,
Au cas ou tu n'aurais pas encore trouvé, ça pourra te dépanner
;)
Au cas ou tu n'aurais pas encore trouvé, ça pourra te dépanner
Sub fret_lignerevêtement() Dim lig As Integer Application.ScreenUpdating = False 'Range("C5").Select lig = 5 'on commence à la ligne 5 Do Until Cells(lig, 3).Value = "File pavé / Bordures / Caniveaux" if Cells(lig, 3).Value = "" then 'si on ne trouve pas le texte on s'arrete msgbox "Texte non trouvé" exit sub end if lig = lig + 1 Loop Range("A" & lig).Select Selection.EntireRow.Insert 'on insere une ligne Range("A" & lig-1 & ":AD" & lig-1).Select Selection.Copy ' on copie 30 colonnes de la ligne précédente Range("A" & lig).Select ActiveSheet.Paste 'on colle dans la ligne vide Application.CutCopyMode = False Range("A" & lig).Select Application.ScreenUpdating = True End Sub
;)
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 18/04/2012 à 15:12
Modifié par lermite222 le 18/04/2012 à 15:12
Bonjour,
Excusez l'incruste mais je pense qu'elle sera utile à vous deux.
Optimisation de la macro de Yoda
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Excusez l'incruste mais je pense qu'elle sera utile à vous deux.
Optimisation de la macro de Yoda
Sub fret_lignerevêtement() Dim lig As Integer Application.ScreenUpdating = False lig = 5 'on commence à la ligne 5 Do Until Cells(lig, 3).Value = [K2] If Cells(lig, 3).Value = "" Then 'si on ne trouve pas le texte on s'arrete MsgBox "Texte non trouvé" Exit Sub End If lig = lig + 1 Loop Range("A" & lig).EntireRow.Insert 'on insere une ligne Rows(lig - 1).Copy Rows(lig) 'ont la copie Rows(lig).Select 'N'est pas nécessaire, remis automatiquement au sortir de la macro. 'Application.ScreenUpdating = True End Sub
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 18/04/2012 à 15:53
Modifié par lermite222 le 18/04/2012 à 15:53
Mais je pense que suivant ta dernière demande si en K2 tu a
File pavé / Bordures / Caniveaux
Je suppose que c'est à cette rubrique que tu veux ajouter une ligne, alors la macro ne va plus..
Tu dis.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
File pavé / Bordures / Caniveaux
Je suppose que c'est à cette rubrique que tu veux ajouter une ligne, alors la macro ne va plus..
Sub fret_lignerevêtement2() Dim lig As Integer, B As Boolean Application.ScreenUpdating = False For lig = 5 To Cells(Rows.Count, 3).End(xlUp).Row If B Then If Cells(lig, 3).Value <> [K2] Then Rows(lig).Insert Rows(lig - 1).Copy Rows(lig) 'ont la copie Rows(lig).Select Exit Sub End If ElseIf Cells(lig, 3).Value = [K2] Then B = True End If Next lig 'Si la rubrique sélectionnée est la dernière Rows(lig - 1).Copy Rows(lig) 'ont la copie Rows(lig).Select End Sub
Tu dis.
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
18 avril 2012 à 13:23
Merci encore
18 avril 2012 à 13:32
Do Until Cells(lig, 3).Value = "File pavé / Bordures / Caniveaux"
par celle-ci
Do Until Cells(lig, 3).Value = Range("K2").Value
;)