Macro pour recopier des lignes selon critères...
Fermé
Prise_cm
Messages postés
5
Date d'inscription
jeudi 10 janvier 2013
Statut
Membre
Dernière intervention
11 janvier 2013
-
10 janv. 2013 à 14:34
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 14 janv. 2013 à 13:17
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 14 janv. 2013 à 13:17
A voir également:
- Macro pour recopier des lignes selon critères...
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Excel trier par ordre alphabétique en gardant les lignes - Guide
2 réponses
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
Modifié par Heliotte le 10/01/2013 à 15:56
Modifié par Heliotte le 10/01/2013 à 15:56
Bonjour Prise_cm,
Bon, eh bien je l'ai fait vers le bas et ça fonctionne:
Bon, eh bien je l'ai fait vers le bas et ça fonctionne:
Public Sub VerifierNombreEtInsererLignes() Const NoCol As Integer = 3 Const NoLigMin As Integer = 2 Const NoLigMax As Integer = 7 Dim i As Integer, NoLigEnCours As Integer, ValCellule As Long ' NoLigEnCours = NoLigMin With Worksheets("Feuil2").Select For i = NoLigMin To NoLigMax ValCellule = Cells(NoLigEnCours, NoCol).Value If (ValCellule > 1) Then 'Rows("15:17").Select 'Cells(NoLigEnCours, NoCol).Value Rows((NoLigEnCours + 1) & ":" & (NoLigEnCours + ValCellule - 1)).Select Selection.Insert Shift:=xlDown NoLigEnCours = (NoLigEnCours + ValCellule) Else NoLigEnCours = (NoLigEnCours + 1) End If Next i End With End Sub
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
11 janv. 2013 à 16:38
11 janv. 2013 à 16:38
Public Sub VerifierNombreEtInsererLignes() Const NoCol As Integer = 3 Const NoLigMin As Integer = 2 Const NoLigMax As Integer = 7 Dim i As Integer, j As Integer, NoLigEnCours As Integer ' déclaration pour une ligne de six colonnes Dim CellA As String, CellB As Long, CellC As Long, CellD As Long, CellE As String, CellF As Long ' NoLigEnCours = NoLigMin With Worksheets("Feuil2").Select For i = NoLigMin To (NoLigMax + 1) CellC = Cells(NoLigEnCours, NoCol).Value If (CellC > 1) Then CellA = Cells(NoLigEnCours, 1).Value CellB = Cells(NoLigEnCours, 2).Value CellD = Cells(NoLigEnCours, 4).Value CellE = Cells(NoLigEnCours, 5).Value CellF = Cells(NoLigEnCours, 6).Value Rows((NoLigEnCours + 1) & ":" & (NoLigEnCours + CellC - 1)).Select Selection.Insert Shift:=xlDown For j = 0 To (CellC - 1) Cells(NoLigEnCours + j, 1).Value = CellA Cells(NoLigEnCours + j, 2).Value = CellB Cells(NoLigEnCours + j, 3).Value = 1 Cells(NoLigEnCours + j, 4).Value = CellD Cells(NoLigEnCours + j, 5).Value = CellE Cells(NoLigEnCours + j, 6).Value = CellF Next j NoLigEnCours = (NoLigEnCours + CellC) Else NoLigEnCours = (NoLigEnCours + 1) End If Next i End With End Sub
Heureux ;-)
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
14 janv. 2013 à 13:17
14 janv. 2013 à 13:17
@+
11 janv. 2013 à 05:53
Seulement la macro créé des lignes vides au lieu de recopier des lignes identiques.
11 janv. 2013 à 07:13
Ok, il te suffit de prendre la valeur de chaque cellule de la ligne .. et de collé pour les autres lignes.
11 janv. 2013 à 11:52
11 janv. 2013 à 11:57
J'ai besoin des noms des colonnes : A, B, C, etc.
11 janv. 2013 à 15:55
Exemple, la ligne A;B;C;D;E;F contenant les informations suivantes :
"Interphones SSIS Bouyer PS 1155";221101;4;181648;DFOO;181648 (j'ai séparé avec ";") serait éclatée en 4 lignes suivantes:
"Interphones SSIS Bouyer PS 1155";221101;1;181648;DFOO;181648
"Interphones SSIS Bouyer PS 1155";221101;1;181648;DFOO;181648
"Interphones SSIS Bouyer PS 1155";221101;1;181648;DFOO;181648
"Interphones SSIS Bouyer PS 1155";221101;1;181648;DFOO;181648
la ligne d'origine serait alors remplacée par 4 lignes identiques. 4 c'est la valeur initialement contenue dans la cellule de la colonne C.