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

  • Initiateur de la discussion Initiateur de la discussion borain
  • 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 !

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.
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

Dernière édition:
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
 
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:
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.
 
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

Dernière édition:
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
 
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.
 
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
 
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 ?
 
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
 
- 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

Discussions similaires

Réponses
3
Affichages
896
Réponses
4
Affichages
751
Réponses
7
Affichages
1 K
Retour