VBA dernière ligne dans plage

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 !

Arpette

XLDnaute Impliqué
Bonsoir à toutes et à tous,
mon problème est le suivant. Dans le code ci-dessous, je veux renvoyer la sélection d'une listBox vers une plage (D4,D14). J'arrive à décaler en colonne D, mais pour les lignes, je parts de 65536 (count), alors qu'il me faudrais D14, D13,D12...jusqu'à D4.
Merci de votre aide
@+
Code:
Private Sub CommandButton1_Click() 'Valider
Dim lig As Long, dernLign As Long, i As Byte
With ListBox1
  lig = .ListIndex
  If lig = -1 Then MsgBox "Sélectionner un client...": Exit Sub
  For i = 0 To 7
        'Je souhaites que ma dernière ligne ne parte pas de la 65536 mais de la 14
        dernLign = Cells(Rows.Count, 4).End(xlUp).Row + 1
        'On met à jour la feuille avec les données du Userform, çà c'est ok
        Cells(dernLign, 4).Value = .List(lig, i)
  Next
End With
End Sub
 
Re : VBA dernière ligne dans plage

Bonsoir,
Bonsoir à toutes et à tous,
mon problème est le suivant. Dans le code ci-dessous, je veux renvoyer la sélection d'une listBox vers une plage (D4,D14). J'arrive à décaler en colonne D, mais pour les lignes, je parts de 65536 (count), alors qu'il me faudrais D14, D13,D12...jusqu'à D4.
Merci de votre aide
@+
Code:
Private Sub CommandButton1_Click() 'Valider
Dim lig As Long, dernLign As Long, i As Byte
With ListBox1
  lig = .ListIndex
  If lig = -1 Then MsgBox "Sélectionner un client...": Exit Sub
  For i = 0 To 7
        'Je souhaites que ma dernière ligne ne parte pas de la 65536 mais de la 14
        dernLign = Cells(Rows.Count, 4).End(xlUp).Row + 1
        'On met à jour la feuille avec les données du Userform, çà c'est ok
        Cells(dernLign, 4).Value = .List(lig, i)
  Next
End With
End Sub

Peut-être ceci (pas de fichier, pas testé!)
Code:
Private Sub CommandButton1_Click() 'Valider
Dim lig As Long, dernLign As Long, i As Byte
With ListBox1
  lig = .ListIndex
  If lig = -1 Then MsgBox "Sélectionner un client...": Exit Sub
  dernLign = Cells(Rows.Count, 4).End(xlUp).Row + 1
  For i = 0 To 7
        'Je souhaites que ma dernière ligne ne parte pas de la 65536 mais de la 14       
        'On met à jour la feuille avec les données du Userform, çà c'est ok
        Cells(dernLign+i, 4).Value = .List(lig, i)
  Next
End With
End Sub
 
Re : VBA dernière ligne dans plage

Bonsoir mapomme,
merci pour ta réponse, mais j'obtiens le même résultat. A noter que le fichier chargé dans ma listBox contient 8 colonnes, comme ceci:
Code:
NOM PRENON	ADRESSE 1	ADRESSE 2	ADRESSE 3	ADRESSE 4	Tél	Fax	LIEU
Nom, prénom et adresse 1 sont toujours renseignés, mais suivant la longueur de l'adresse, je peux être amené à avoir des valeurs dans Ad 2,3 ou 4 mais si elles sont vides, je souhaites renvoyer la prochaine ligne non vide de listBox en dessous de la dernière ligne renseignée. Avec mon code ou le tien, celà renvoi des lignes vides.
Merci quand même pour ton aide
@+
 
Re : VBA dernière ligne dans plage

Bonsoir le fil , bonsoir le forum,

Peut-être comme ça :
Code:
Private Sub CommandButton1_Click() 'Valider
Dim lig As Long, dernLign As Long, i As Byte
With ListBox1
    lig = .ListIndex
    If lig = -1 Then MsgBox "Sélectionner un client...": Exit Sub
    dernLign = Cells(Rows.Count, 4).End(xlUp).Row + 1
    For i = 0 To 7
        Cells(dernLign, 4 + i).Value = .List(lig, i)
    Next
End With
End Sub
 
Re : VBA dernière ligne dans plage

Bonsoir JCGL, j'ai répondu avec précipitation et n'ai pas regardé le profil de mapomme. Je sais et le demande à chaque post, "joignez un fichier". Je suis tellement agacé devant ce problème qui me semble simple, que j'en ai oublié les fondamentaux du forum.
Toutes mes excuses à mapomme, qui ne l'est pas pour autant😱
@+
 
Re : VBA dernière ligne dans plage

Bonjour mapomme, JCGL, le forum,
J'ai fini par trouver, je ne sais pas où j'avais la tête, c'est pourtant simple, au lieu de partir du bas de la page, je parts de D14 et je remonte jusqu'à buté sur D3 qui est non vide et je renseigne
Merci de m'avoir aidé
@+
Code:
Private Sub CommandButton1_Click() 'Valider
Dim lig As Long, dernLign As Long, i As Byte
With ListBox1
    lig = .ListIndex
    If lig = -1 Then MsgBox "Sélectionner un client...": Exit Sub
    For i = 0 To 7
    'on repère la dernière ligne non vide
    dernLign = Range("D14").End(xlUp).Row + 1
        Cells(dernLign, 4) = .List(lig, i)
    Next
End With
End Sub
 
- 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
10
Affichages
282
Réponses
4
Affichages
180
Réponses
4
Affichages
461
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
482
Réponses
15
Affichages
785
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Retour