Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Couper inserer ligne

  • Initiateur de la discussion Initiateur de la discussion archimede781
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

archimede781

Guest
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
 
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
 
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
 
Re : Couper inserer ligne

-"Les tableaux pas forcement le pied quand même"

OUI, mai quand on ne sait faire que ça !

Qu'entends tu par :
-"Le problème est que cela fonctionne 1 fois" ?

Merci
A781




Merci
 
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
 
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:
Re : Couper inserer ligne

re tous 🙂
je viens de tester le code de l'ami camarche pas🙂🙂 ben ca camarche trés🙂🙂 bien
j'aurais du le faire avant cela m'aurait eviter de me prendre la tête sur ce sujet
de plus code bien construit bravo 🙂🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
22
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…