Couper inserer ligne

archimede781

XLDnaute Junior
Bonjour,

Dans le tabeau joint, je désirerai par une macro, Placer la ligne 15 qui contient l'adhérent N° 6 du nom de G Claude, à sa place sous la ligne 11 .
Je précise que je veux le faire par couper inserer ligne, et non pas par tri efectué sur les colonnes.

Merci de votre aide

Archi781
 

archimede781

XLDnaute Junior
Re : Couper inserer ligne

Bien...mais la position de la ligne peut changer car un autre adhérent se nommant "D2" peut venir pour être inséré.
Il faut que la macro calcule l'emplacement de réinsertion de la dernière ligne dans le tableau.
Je m'explique:
L'adhérent que je veux insérer à sa place correcte sera toujours au départ situé dans la dernière ligne du tableau puisque c'est moi qui le place à cet endroit, mais la macro doit pouvoir par "Couper-Inserer" le positionner au bon endroit en le classant par ordre de la colonne B
 

camarchepas

XLDnaute Barbatruc
Re : Couper inserer ligne

Bonjour Archi, Laetitia,

Voici pour intégrer la derniére ligne à la bonne position.

Le problème est que cela fonctionne 1 fois ,

et il semblerait que c'est le fait d'utiliser un tableau Excel qui verouille les cellules

Je regarde donc pour une autre solution .

Les tableaux pas forcement le pied quand même

Code:
Sub Tri()
Dim Table() As String
Dim Nombre As Long
Dim Tourne As Long, Position As Long

Nombre = Sheets("Consommation").Range("B" & Rows.Count).End(xlUp).Row - 6
ReDim Table(Nombre)
'Chargement table
For Tourne = 1 To Nombre
Table(Tourne) = Sheets("Consommation").Range("C" & Tourne + 6) & Sheets("Consommation").Range("D" & Tourne + 6)
Next Tourne
'Récupération position
For Tourne = Nombre - 1 To 1 Step -1
 If Table(Nombre) > Table(Tourne) Then Exit For
 Position = Tourne + 6
Next Tourne
    Rows(Nombre + 6).EntireRow.Cut
    Rows(Position).Insert Shift:=xlDown
End Sub
 

laetitia90

XLDnaute Barbatruc
Re : Couper inserer ligne

re,:)
un truc dans ce style

Code:
Dim z As Long, x
x = Range("A" & Rows.Count).End(3).Row
z = Range("A" & Rows.Count).End(3).Value
Rows(z + 6).Insert: Cells(x + 1, 1).Resize(, 5).Cut Destination:=Range("A" & z + 6)

salut camarche:) pas rafraichie
 

laetitia90

XLDnaute Barbatruc
Re : Couper inserer ligne

re tous :)
j'avais pas vu le dernier message d'archi
de plus j'avais pas pris la bonne colonne A a la place de B
ca change rien pas bon une autre soluc a affiner en rajouter une autre condition detecter changement lettre pour mettre a la fin ordre alpha je met juste apres

Code:
Sub es()
Dim x As Long, z, i As Long
 x = Range("c" & Rows.Count).End(3).Row
 z = Left(Range("c" & Rows.Count).End(3).Value, 1)
 For i = 7 To Cells(Rows.Count, 3).End(xlUp).Row
 If Cells(i, 3) = z Then
 Rows(i + 1).Insert
 Cells(x + 1, 2).Resize(, 5).Cut Destination:=Range("B" & i + 1)
 Exit For
 End If
 Next i
End Sub
 
Dernière édition:

Discussions similaires

Réponses
22
Affichages
873

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 453
Messages
2 088 551
Membres
103 881
dernier inscrit
malbousquet