VBA 1er ligne d'un tableau

Bonjour,

J’expose mon problème.

J'ai un tableau pour le moment vide qui commence de A5:O5 et comporte 2 lignes d'on la 1ere est l'entête et la seconde est vide (comprend quand même des formules)

J'ai fait un UserForm1 afin de mettre 1 combobox et 2 textbox

Ce formulaire me permets d'enregistré des produits dans mon tableau

Mais je ne comprends pas pourquoi si mon tableau ne comporte que 1 seule ligne j'ai une erreur d’exécution 381, mais s'il comprend 2 ligne vide c'est ok.

De plus si mon tableau comporte 2 lignes vide ou + ça me copie mes infos en dernieres ligne et non en 1ere comme je voudrais.

Pourquoi, merci.

'Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
    Dim L As Integer
    If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
        L = Sheets("Maquette").Range("a65536").End(xlUp).Row + 1
        Range("A" & L).Value = ComboBox1
        Range("B" & L).Value = TextBox1
        Range("H" & L).Value = TextBox2
    End If
End Sub

Bonjour,

Mais je ne comprends pas pourquoi si mon tableau ne comporte que 1 seule ligne j'ai une erreur d’exécution 381, mais s'il comprend 2 ligne vide c'est ok.

PAs de raison d'avoir une erreur au vu du code posté.

De plus si mon tableau comporte 2 lignes vide ou + ça me copie mes infos en dernieres ligne et non en 1ere comme je voudrais.

c'est normal au vu du code, puisque la variable L identifie la dernière ligne vide de la colonne A

Merci de mettre un fichier sans données confidentielles ce sera plus simple de comprendre

Crdlt

Je joint un fichier essai.

J'ai l'erreur 381 si mon tableau fait 1 ligne, et si plusieurs lignes plus d'erreurs mais ça copie mes données en bas du tableau, pas en 1ere ligne.

Merci

137essai.xlsm (30.34 Ko)

bonjour

a tester

change ton ligne Sheets("Maquette").Range("a65536").End(xlUp).Row + 1

avec

Sheets("Maquette").Range("A....").End(xlDown).Offset(1, 0).Select

ET Remplace les point avec le numero de premiere ligne

supzak

Pareil si mon tableau ne comprend que 1 ligne j'ai une erreur, et avec ce code j'ai en plus une erreur 1004 sur la méthode .range

aie :/

je vois pas le problème mais essaie toi avec

l = Sheets("Maquette").Range("A5").End(xlDown).Row

Si non remplir ton tableau a la main et supprime des linges en cliquant droit sur la souris et supprime ligne tableau

Bonsoir

a tester ce code

Private Sub CommandButton1_Click()

Dim fin_tableau As Long

If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then

L = Range("A5").End(xlDown).Address

Range(L).Select 'L correspond à la dernière cellule du tableau

Selection.Offset(1, 0).Activate

fin_tableau = ActiveCell.Row

Range("A" & fin_tableau).Value = ComboBox1

Range("B" & fin_tableau).Value = TextBox1

Range("H" & fin_tableau).Value = TextBox2

End If

End Sub

avec plaisir

supzak

Bonjour

Ces satanés tableaux (ListObject)

A tester

Bonjour,

Bonjour Banzai64,

Ces satanés tableaux bis

Merci à vous déjà,

Jep malheureusement ton exemple ne fonction pas ça me rajoute bien ma 1ere ligne en ligne 1 mais après j'ai une d'erreur dès que je souhaite rajouter une seconde ligne.

De plus, j'aurai juste 1 petits question.

1. Sur ma colonne C il y a une fonction RechercheV qui va dans une autre feuille afin de me récupérer le nom d'un produit en fonction de son numéro.

Mon UserForm fonctionne très bien car il me copie bien mon numéro via mon UserForm dans ma colonne B mais en colonne C (rechercheV) j'ai le droit d'avoir #N/A au lieu du nom de mon produit. par contre, si je vais sur ma colonne B et je fais entrer la mon produit apparaît.

Comment puis-je régler ce souci?

Grand merci à vous.

Re,

Point 1 : voir partie surlignée à ajouter.

'Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
Dim Reponse As Integer

    Reponse = MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", _
                     vbYesNo, _
                     "Demande de confirmation d'ajout")

    If Reponse = vbNo Then Exit Sub
    ' Insertion nouvele ligne dans tableau
    If DL >= 1 And objLR.Range.Cells(1, 1) <> "" Then
        Set objLR = objList.ListRows.Add(AlwaysInsert:=True)
    End If

    objLR.Range.Cells(1, 1) = ComboBox1
    objLR.Range.Cells(1, 2) = TextBox1
    objLR.Range.Cells(1, 8) = TextBox2

   Unload Me

    Set objLR = Nothing
    Set objList = Nothing
    Set ws = Nothing

End Sub

Point 2 : ton classeur doit être en calcul manuel (voir options Excel).

Ok donc j'ai essayé Seb, j'ai rajouté le Unload me ça fonctionne pas pas, par contre je suis passé en calcule manuel c'est pareil j'ai des #N/A, sauf si j'appui sur entrer à chaque ligne.

Je comprends aps

Re,

Cela fonctionne chez moi. Je ne sais pas comment tu procèdes pour avoir une erreur.

Pour le point du calcul manuel ou automatique, je ne peux pas t'aider. Ton fichier ne comporte qu'un onglet.

Et de plus c'est un autre sujet.

Cdlt.

Bonjour,

J'ai une erreur quand je crée 2 lignes ou +, ensuite je les supprimes (via un autre bouton avec pour fonction de supprimer une ligne que je souhaite) et là si mon tableau redevient vide je re-crée une ligne et là j'ai l'erreur d’exécution '9'

Merci

Bonjour,

Merci de joindre ton fichier.

Cdlt.

Oui bien sûr pardon.

j'ai déjà réglé un souci avec Val

objLR.Range.Cells(1, 1) = Val(ComboBox1)

Maintenant il me reste encore une erreur, quand je crée un ou plusieurs lignes dans le tableau je les efface et si j'essai d'un refaire une la erreur d’exécution 9.

Bonjour,

Une mise à jour sans grande conviction.

Cdlt.

117nici-essai-v1.xlsm (69.53 Ko)

Merci ça marche très bien.

Grand grand merci encore

Rechercher des sujets similaires à "vba 1er ligne tableau"