Formulaire , tri , ligne vide

Résolu/Fermé
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 10 mars 2017 à 15:03
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 16 mars 2017 à 20:54
Bonjour,

Je bloque sur un projet .
J'ai crée un formulaire de saisie .Les données saisies s’inscrivent à la suite dans la colonne A de la feuill1.
Je voudrais qu’après chaque donnée inscrite il se crée une ligne vide et que cette ligne vide soit liée à la donnée de telle sorte que lorsque je fais le tri il y ai toujours la ligne vide associée en dessous de la donnée.
Ouf!!!! , j’espère que je suis claire...
je vous joins un fichier d'exemple

https://www.transfernow.net/?utm_source=partagefichierscom&utm_medium=download

merci de votre aide
Cordialement

10 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 10/03/2017 à 16:35
Bonjour

Est ce que la "ligne vide" reste toujours vide ou bien est ce qu'elle est susceptible d'être remplie et si oui, avec quoi (valeur, formule)?

Cdlmnt
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
10 mars 2017 à 16:53
Bonjour julia

Si j'ai bien compris il faut rajouter une colonne B dans laquelle inscrire sur 2 lignes les valeurs de A , de manière ensuite à faire le tri sur cette colonne mais tu peux parfaitement masquer cette colonne B
Modifie alors ta macro ainsi :
Private Sub CommandButton1_Click()
M = ComboBox1.Value
Compt = Sheets("FEUIL1").Range("B" & Rows.Count).End(xlUp).Row

With Sheets("FEUIL1")

.Range("A" & Compt + 1).Value = Me.ComboBox1.Value
.Range("B" & Compt + 1).Value = Me.ComboBox1.Value
.Range("B" & Compt + 2).Value = Me.ComboBox1.Value
.Range("A" & Compt + 1).Borders(xlEdgeLeft).LineStyle = xlContinuous
.Range("A" & Compt + 1).Borders(xlEdgeLeft).Weight = xlThin
.Range("A" & Compt + 1).Borders(xlEdgeTop).LineStyle = xlContinuous
.Range("A" & Compt + 1).Borders(xlEdgeTop).Weight = xlThin
.Range("A" & Compt + 1).Borders(xlEdgeBottom).LineStyle = xlContinuous
.Range("A" & Compt + 1).Borders(xlEdgeBottom).LineStyle = xlThin
.Range("A" & Compt + 1).Borders(xlEdgeRight).LineStyle = xlContinuous
.Range("A" & Compt + 1).Borders(xlEdgeRight).Weight = xlThin
.Range("A" & Compt + 2).Value = ""
.Range("A" & Compt + 2).Borders(xlEdgeLeft).LineStyle = xlContinuous
.Range("A" & Compt + 2).Borders(xlEdgeLeft).Weight = xlThin
.Range("A" & Compt + 2).Borders(xlEdgeTop).LineStyle = xlContinuous
.Range("A" & Compt + 2).Borders(xlEdgeTop).Weight = xlThin
.Range("A" & Compt + 2).Borders(xlEdgeBottom).LineStyle = xlContinuous
.Range("A" & Compt + 2).Borders(xlEdgeBottom).LineStyle = xlThin
.Range("A" & Compt + 2).Borders(xlEdgeRight).LineStyle = xlContinuous
.Range("A" & Compt + 2).Borders(xlEdgeRight).Weight = xlThin
.Range("A" & Compt + 3).Value = ""
.Range("A" & Compt + 3).Borders(xlEdgeLeft).LineStyle = xlContinuous
.Range("A" & Compt + 3).Borders(xlEdgeLeft).Weight = xlThin
.Range("A" & Compt + 3).Borders(xlEdgeTop).LineStyle = xlContinuous
.Range("A" & Compt + 3).Borders(xlEdgeTop).Weight = xlThin
.Range("A" & Compt + 3).Borders(xlEdgeBottom).LineStyle = xlContinuous
.Range("A" & Compt + 3).Borders(xlEdgeBottom).LineStyle = xlThin
.Range("A" & Compt + 3).Borders(xlEdgeRight).LineStyle = xlContinuous
.Range("A" & Compt + 3).Borders(xlEdgeRight).Weight = xlThin


   Columns("A:B").Select
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B2:B1000" _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A1:B1000")
       .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
End With
maj_USER1
MsgBox "Enregistré"
Me.ComboBox1.Value = ""
End Sub


Ne pas oublier non plus de modifier la plage dans la macro RAZ pour effacer aussi la colonne B

Cdlmnt
Via
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
10 mars 2017 à 20:32
Option 1. la "ligne vide" reste toujours vide
http://www.cjoint.com/c/GCktDUuoDzg
Option 2. la "ligne vide" peut être remplie ou non à la main dans la feuille
http://www.cjoint.com/c/GCktFRU6PRg

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
10 mars 2017 à 21:54
Merci les gars , j'ai hate de tester vos propositions
Je reviens vers vous ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
13 mars 2017 à 14:28
Bonjour
Tous mes remerciements pour ces fichiers , vous répondez exactement à mes besoins .
Le fichier Option 1 de ccm81 me convient le plus .

Pour aller plus loin ; quelques soucis apparaissent

-Comment l'adapter si mes lignes débutent à la 12éme.
- Je voudrais fusionner la cellule vide et la cellule non vide ; pas de soucis . mais je n'arrive plus à appliquer un filtre en fonction des autres colonnes .
Je pense que c'est lié aux cellules fusionnées , y a t il un moyen de contourner?
ci joint un fichier exemple
https://mon-partage.fr/f/Rq72iS32/
merci beaucoup
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
15 mars 2017 à 04:51
Bonjour
Apres plusieurs tests , j'abandonne les cellules fusionnées ( problématiques)
du coup je voudrais modifier le merveilleux code de ccm81 au niveau du tri
en fait , dans mon projet les données sont inscrites à partie de la cellule F12
mais le tri s'applique sur toute la colonne F.
Comment appliquer le tri qu'a partir de f12

Option Explicit

Private Sub CommandButton1_Click()
Dim M As String, lifin As Long, k As Long, t(), n As Long
Application.ScreenUpdating = False
M = Me.ComboBox1.Value
With Sheets("FEUIL1")
lifin = .Range("F" & Rows.Count).End(xlUp).Row
If lifin Mod 2 = 0 Then lifin = lifin + 1
.Range("F" & lifin + 1).Value = M
.Range("F" & lifin + 1).Borders.LineStyle = xlContinuous
.Range("F" & lifin + 2).Borders.LineStyle = xlContinuous
.Range("F" & lifin + 2).Borders.Weight = xlThin
n = (lifin + 1) \ 2
ReDim t(1 To n, 1 To 2)
For k = 1 To n
t(k, 1) = Range("F" & 2 * k).Value
t(k, 2) = Range("F" & 2 * k + 1).Value
Next k
Call TriSel(t, 1)
For k = 1 To n
Range("F" & 2 * k).Value = t(k, 1)
Range("F" & 2 * k + 1).Value = t(k, 2)
Next k
End With
maj_USER1
MsgBox "Enregistré"
Me.ComboBox1.Value = ""
Application.ScreenUpdating = True
End Sub




Public Sub TriSel(ByRef t, ByVal cle As Long)
Dim lideb As Long, lifin As Long, codeb As Long, cofin As Long
Dim i As Long, j As Long, rangmini As Long, aux, k As Long
lifin = UBound(t, 1)

cofin = UBound(t, 2)
lideb = LBound(t, 1)
codeb = LBound(t, 2)
If cle > cofin Then Exit Sub
For i = lideb To lifin - 1
rangmini = i
For j = i To lifin
If t(j, cle) < t(rangmini, cle) Then rangmini = j
Next j
For k = codeb To cofin
aux = t(i, k)
t(i, k) = t(rangmini, k)
t(rangmini, k) = aux
Next k
Next i
End Sub


merci beaucoup
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
15 mars 2017 à 18:40
Peux tu envoyer un bout de ton fichier, dans ton dernier envoi, il y avait 3 colonnes au lieu de deux, ça change pas mal de choses.

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
15 mars 2017 à 21:38
Bonsoir ccm81

J'étais lancée dans la réalisation du tri en utilisant la méthode de via55 a savoir la création d'une colonne supplémentaire et y effectuer le tri
Du coup je te confie le bébé à tes bons soins

https://mon-partage.fr/f/QFEtdUDe/

merci énormément
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
16 mars 2017 à 14:21
Voilà pour la mise à jour de l’enregistrement des données colonne F
https://www.cjoint.com/c/GCqntlisTtg

Cdlmnt
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
16 mars 2017 à 20:54
Bonsoir ccm81

Juste une chose à dire. MERCI
J'avoue que c'était un peu laborieux de ma part mais bravo , tu as répondu exactement à mon souhait.

Merci
0