XL 2016 placer les donneées à la 1ere ligne non vide

borain

XLDnaute Nouveau
Bonjour à tous,
j'aimerai placer mes donner provenant de ma texbox à la 1ere ligne non vide de ma listbox
j'utilise ce code
VB:
Private Sub CommandButton1_Click()
Dim derligne As Integer

            derligne = Sheets("FEUIL11").Range("A65356").End(xlUp).Row + 1
         
             Range("A" & derligne) = Me.Lbl_Date
              Range("B" & derligne) = Me.TextBox3
              Range("C" & derligne) = Me.ComboBox2
              Range("D" & derligne) = Me.TextBox2
              Range("E" & derligne) = Me.TextBox1
             
              Range("F" & derligne) = Me.TextBox6
              Range("G" & derligne) = Me.TextBox7
             Range("h" & derligne) = Me.ComboBox3

   
            Unload Me
            UserForm1.Show
           
         
    
End Sub
mais ça envoi toujours en bas
merci pour votre aide
 
Solution
Bonsoir,
Excusez le quiproquo :
tu peux me renvoyer le fichier en gif
En PJ le fichier du post #8.
Je viens de le re-tester sur les 4 premières lignes. Pour moi, ça marche. Sauf si j'ai raté quelque chose.
Etant sous XL2007 et vous sous XL2016, ce ne peut pas être un problème de version XL.
Testez ce fichier et dites moi.

Ma procédure ( dans le cas où je ferais quelque chose de différent de vous )
Sur feuill11 je clique sur le bouton 1.
Je remplis Date, Cade anal, Utlisateur ( et rien d'autre ) puis j'appuie sur Valider.
Les datas sont insérer en ligne 2.

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @borain, @sylvanu ;)

Voir fichier joint. le code est dans module1.
VB:
Sub test()
Dim PremCellVide As Long
   On Error Resume Next
   PremCellVide = Range("a1:a" & Rows.Count).SpecialCells(xlCellTypeBlanks).Areas(1)(1).Row
   On Error GoTo 0
   If PremCellVide = 0 Then MsgBox "Aucune cellule vide en colonne A": Exit Sub
   MsgBox "Première cellule vide en colonne A en ligne " & PremCellVide
End Sub
 

Pièces jointes

  • borain- Prem cell vide- v1.xlsm
    18.6 KB · Affichages: 14
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Borain, MaPomme,
Vous pourriez préciser le problème ?
J'ai fait un essai et la listbox est bien remplit sur la première ligne vide de la feuil1.
20200409_091529.gif
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
j'aimerai placer mes donner provenant de ma texbox à la 1ere ligne non vide de ma listbox
Et c'est exactement ce que vous faites.
( en fait "derligne" est généralement utilisé comme variable pour signifier Dernière Ligne )

En fait il vous faut insérer une ligne puis y mettre les données, alors que vous cherchez la première ligne vide pour y insérer les données.

Comme par exemple :
VB:
Private Sub CommandButton1_Click()
With Sheets("FEUIL11")
        Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        .Range("A2") = Me.Lbl_Date
        .Range("B2") = Me.TextBox3
        .Range("C2") = Me.ComboBox2
        .Range("D2") = Me.TextBox2
        .Range("E2") = Me.TextBox1
        .Range("F2") = Me.TextBox6
        .Range("G2") = Me.TextBox7
        .Range("h2") = Me.ComboBox3
End With
    Unload Me
    UserForm1.Show
End Sub
 
Dernière édition:

borain

XLDnaute Nouveau
Et c'est exactement ce que vous faites.
( en fait "derligne" est généralement utilisé comme variable pour signifier Dernière Ligne )

En fait il vous faut insérer une ligne puis y mettre les données, alors que vous cherchez la première ligne vide pour y insérer les données.

Comme par exemple :
VB:
Private Sub CommandButton1_Click()
With Sheets("FEUIL11")
        Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        .Range("A2") = Me.Lbl_Date
        .Range("B2") = Me.TextBox3
        .Range("C2") = Me.ComboBox2
        .Range("D2") = Me.TextBox2
        .Range("E2") = Me.TextBox1
        .Range("F2") = Me.TextBox6
        .Range("G2") = Me.TextBox7
        .Range("h2") = Me.ComboBox3
End With
    Unload Me
    UserForm1.Show
End Sub
Merci pour ton aide
mais j'ai essayé avec ce code ça écrase les données à chaque fois en a2 , pourtant j'ai envie d'insérer à chaque fois.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
La ligne :
VB:
Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
insére une ligne en 2, donc on ne peut pas écraser les données.
Essayez sur un fichier vierge l'enregistreur de macros, en insérant une ligne en 2, vous obtenez :
Code:
Sub Macro2()
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
Donc je pense que vous avez mal implémenté la macro.
En PJ un essai qui a l'air de marcher.
 

Pièces jointes

  • test (25).xlsm
    72.5 KB · Affichages: 11
Dernière édition:

borain

XLDnaute Nouveau
Bonjour Borain, MaPomme,
Vous pourriez préciser le problème ?
J'ai fait un essai et la listbox est bien remplit sur la première ligne vide de la feuil1.
Regarde la pièce jointe 1061838
je suis surement hs mais j'aimerai savoir comment faire cet enregistrement de l'ecran et le posté comme une image.
je fais bien l'enregistrement sur power point mais apres j'arrive pas a le poster comme une image .

merci .


pour insertion de la ligne en a2 j'ai testé le fichier c'est toujours pareil
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Ce n'est pas une image mais un gif. Je le fais avec ApowerREC. Il fait aussi des capture vidéos.

Avez vous testé ma PJ du post #8 ?

Envoyé votre code modifié, je regarderais.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai l'impression qu'on ne se comprend pas.
Ci dessous le fichier du post #8.
J’insère l'utilisateur AAAAA.
Lorsque je fais Valider, les données s'insèrent bien en ligne 2 qui vient d'être crée.
La ligne 2 du départ est en rose, après insertion elle est en 3.

Quel est le point qui m'échappe ? :)
20200409_181651.gif
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Pourquoi faire ? Bien sur qu'on peut en insérer, vous répéter la commande :
VB:
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
J'ai du mal à vous suivre. J'attendais une réponse comme quoi ça marche ou ça marche pas, pas une nouvelle requête !
Pouvez vous me dire, dans le gif ci dessus ce qui ne va pas par rapport à votre demande ?
 

borain

XLDnaute Nouveau
Pourquoi faire ? Bien sur qu'on peut en insérer, vous répéter la commande :
VB:
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
J'ai du mal à vous suivre. J'attendais une réponse comme quoi ça marche ou ça marche pas, pas une nouvelle requête !
Pouvez vous me dire, dans le gif ci dessus ce qui ne va pas par rapport à votre demande ?
Désolé si je m' exprime pas assez bien !
Et je vous remercie pour l'attention que vous porter à mon problème
Mais mon problème est le suivant
J'insère la première ligne oui ça marche
Mais lorsque je veux insérer la suivante ça écrasé la ligne que je venais d'inserer
 

Discussions similaires

Réponses
7
Affichages
975
H
Réponses
19
Affichages
5 K

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 868
dernier inscrit
JJV