Ajout de données à la dernier ligne

SVP avec ce code pourquoi l'ajout des données vient à la ligne 43 et pas à la première ligne vide?

' ajout des donner dans la base de donnérs

With Sheets("Recap")

iRow = Range("A" & Rows.Count).End(xlUp).Row + 1

.Cells(iRow, 1).Value = Feuil1.Range("e9") ' date

.Cells(iRow, 2).Value = Feuil1.Range("e10").Value ' num fac

.Cells(iRow, 3).Value = Feuil1.Range("e11").Value ' client

.Cells(iRow, 4).Value = Feuil1.Range("e13").Value ' mf

.Cells(iRow, 5).Value = Feuil1.Range("e14").Value ' num autorisation

.Cells(iRow, 6).Value = Feuil1.Range("e15").Value ' num BC

.Cells(iRow, 7).Value = Feuil1.Range("e16").Value ' date validite autorisation

.Cells(iRow, 8).Value = Feuil1.Range("e32").Value ' HT

.Cells(iRow, 9).Value = Feuil1.Range("e35").Value ' TVA

.Cells(iRow, 10).Value = Feuil1.Range("e36").Value ' TTC

.Cells(iRow, 11).Value = Feuil1.Range("e37").Value ' RAS

.Cells(iRow, 12).Value = Feuil1.Range("e38").Value ' DT

.Cells(iRow, 13).Value = Feuil1.Range("e39").Value ' Avnace

.Cells(iRow, 14).Value = Feuil1.Range("e40").Value ' net

End With

MsgBox "Votre saisie a bien été ajoutée!", vbOKOnly + vbInformation, "CONFIRMATION"

Bonjour

Si vous voulez avoir une reponse, veuillez lire ces quelques lignes https://forum.excel-pratique.com/viewtopic.php?f=2&t=13 les points 3 et 5 notamment.

Cordialement

ok

Bonjour

A la question

pourquoi l'ajout des données vient à la ligne 43 et pas à la première ligne vide?

Car la 1ére ligne vide est la ligne 43 (la colonne A étant rempli jusqu'à la 42 )

merci pour ta réponse

mais non toute les lignes sont vide

Alors elles contiennent des formules

Bonjour Sassi,

Je te propose ce code VBA :

Option Explicit

Sub Essai()
  If ActiveSheet.Name <> "Feuil1" Then Exit Sub
  Dim iRow&: Application.ScreenUpdating = False
  ' ajout des données dans la base de données
  With Worksheets("Recap")
    iRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Cells(iRow, 1) = [E9]    ' date
    .Cells(iRow, 2) = [E10]   ' num fac
    .Cells(iRow, 3) = [E11]   ' client
    .Cells(iRow, 4) = [E13]   ' mf
    .Cells(iRow, 5) = [E14]   ' num autorisation
    .Cells(iRow, 6) = [E15]   ' num BC
    .Cells(iRow, 7) = [E16]   ' date validite autorisation
    .Cells(iRow, 8) = [E32]   ' HT
    .Cells(iRow, 9) = [E35]   ' TVA
    .Cells(iRow, 10) = [E36]  ' TTC
    .Cells(iRow, 11) = [E37]  ' RAS
    .Cells(iRow, 12) = [E38]  ' DT
    .Cells(iRow, 13) = [E39]  ' Avance
    .Cells(iRow, 14) = [E40]  ' net
  End With
  MsgBox "Votre saisie a bien été ajoutée!", 64, "CONFIRMATION"
End Sub

Cette macro ne s'exécute que depuis "Feuil1" !

Sans ton fichier, je n'ai pas testé ce code, alors essaye-le sur une copie de ton fichier !

Si ça ne fait pas ce que tu attends, mets ton fichier dans ton prochain message,

et je ferai l'adaptation nécessaire.

Si ton problème est réglé, merci de cliquer sur la coche ☑.

Cordialement,

dhany

merci mon ami

j'ai trouvé la solution, en fait il faut ajouter . avant range :

code a probleme : iRow = Range("A" & Rows.Count).End(xlUp).Row + 1

code bon : iRow = .Range("A" & Rows.Count).End(xlUp).Row + 1

merci pour tout

Oui, c'est bien ce que j'avais déjà fait avec cette instruction (note bien le point devant Range) :

iRow = .Range("A" & Rows.Count).End(xlUp).Row + 1

Mais si tu regardes bien mon code VBA, tu peux voir qu'il est plus court que le code VBA initial, en particulier car j'ai évité les multiples références à Feuil1 (j'ai supposé qu'elle a pour nom "Feuil1") : voir [E9] à [E40], sans point devant, car c'est sur la feuille active (qui est forcément "Feuil1" grâce à la 1ère instruction If).

J'ai aussi corrigé ton inversion de lettre : ' Avnace en ' Avance

Pour ton vbOKOnly + vbInformation : vbOKOnly = 0, donc ça revient à vbInformation seulement,

dont l'équivalent est 64, d'où : MsgBox "Votre saisie a bien été ajoutée!", 64, "CONFIRMATION"

J'ai aussi fait l'indentation du code, pour une meilleure lecture,

et tu ne perds rien à essayer mon code VBA.

Bonjour Sassi

Apparement vous n'as pas lu le lien, sinon je pense que vous auriez pris la peine d'éditer le titre du sujet.

Raison pour laquelle je ne vous ai pas répondu. Qu'importe puisque d'autres forumeurs vous ont répondu sans y prêter attention.

Je l'ai donc fait moi - même.

Cordialement

re bonjour

non j'ai bien lu le lien, mais j'ai compris que je dois poster un autre sujet, ce que j'ai déjà fait, sous un autre titre et ne pas changer intitulé

merci

Re

Faut éviter de doubler sans quoi on perd la trace de votre demande ou plusieurs personnes travaillent sur le même sujet dans deux fils différents. Pas facile de suivre ni pour vous ni pour celui qui vous répond.

Pour modifier le titre d'un sujet, reprenez votre premier post et cliquez sur le petit crayon en haut à doite. Cela vous permettra d'adapter le titre du sujet.

Rechercher des sujets similaires à "ajout donnees dernier ligne"