Coller deuxième ligne vide VBA ?

Bon jour le forum

Avant de décider poster ce message, j'ai fait une petite recherche dans le web et surtout dans mon cite préférée

sur le sujet comment copier dans le deuxième linge vide ? une seule réponse dans tout le web (presque) c'est :

Copier sur première ligne vide .

Alors dans mon cas j'aux besoins du premier linge vide pour faire recherche.

c'est pour ça j’aimerai coller les valeurs dans le deuxième linge vide.

Dans mon exemple je souhaite archives les données de la facture établie dans la feuille ''Archives'' à partir de la ligne 8 .

le code vba

Sub Valider2()
Dim Ws As Worksheet
Dim dlg As Long
Dim cel As Range
 If Range("b17") = "" Then
          MsgBox ("Aucun Donneés à archivé...?")
          Exit Sub
          End If
       Set Ws = ThisWorkbook.Worksheets("Facture")
       With Sheets("Archives")
        dlg = .Range("B" & Rows.Count).End(xlUp).Row + 1
       .Range("B" & dlg) = Ws.Range("B11")  'Date
       .Range("C" & dlg) = Ws.Range("C10")  'N° Facture
       .Range("D" & dlg) = Ws.Range("E50") 'Total ht
       .Range("E" & dlg) = Ws.Range("E51") 'Tva
       .Range("F" & dlg) = Ws.Range("E52") 'Total ttc
       .Range("G" & dlg) = Ws.Range("B12")  'Client
    End With

End Sub

je vous remercie par avance de votre aide.

cordialement.

Bonjour

Tu remplaces Row+1 par Row+2

Cordialement

Re Bonjour Amadéus, le forum

merci pour votre attention.

rien n'a changé

nota: sachant qu'il ya une ligne masquée (ligne7).

Bonjour zinelamri,

Petit complément : je te propose de remplacer : MsgBox ("Aucun Donneés à archivé...?")

par : MsgBox "Aucune donnée à archiver...?"

NB : Les parenthèses (et les fautes d'orthographes) sont facultatives et inutiles.

dhany

Bonjour dhany

Le Hâte et le (copie-coller) nous a fait tomber dans des erreurs.

merci beaucoup pour la correction Prof.

Bonjour

essaie

dlg = [B65000].End(xlUp).Row + 2

Cordialement

Bonjour

ça colle...bien mais dans le 25 ligne.

Je te propose d'essayer ce code VBA :

Option Explicit

Sub Valider2()
  If [B17] = "" Then MsgBox "Aucune donnée à archiver...?": Exit Sub
  Dim Ws As Worksheet, dlg&
  Set Ws = ThisWorkbook.Worksheets("Facture")
  With Worksheets("Archives")
    dlg = .Cells(Rows.Count, 2).End(xlUp).Row + 2
    With .Cells(dlg, 2)
      .Value = Ws.[B11]       'Date
      .Offset(, 1) = Ws.[C10] 'N° Facture
      .Offset(, 2) = Ws.[E50] 'Total ht
      .Offset(, 3) = Ws.[E51] 'Tva
      .Offset(, 4) = Ws.[E52] 'Total ttc
      .Offset(, 5) = Ws.[B12] 'Client
    End With
  End With
End Sub

Si ça marche : ok ! sinon, ça serait bien que tu envoies ton fichier (sans données confidentielles).

dhany

je vous envoie le fichier avec le résultat de dernier code

merci beaucoup pour le soutien

11gsf-zine.xlsm (272.67 Ko)

Bonjour

En reaffichant la ligne masquée avant et en la masquant après.

Option Explicit

Sub Valider2()
  If [B17] = "" Then MsgBox "Aucune donnée à archiver...?": Exit Sub
  Dim Ws As Worksheet, dlg&
  Set Ws = ThisWorkbook.Worksheets("Facture")
  Sheets("Archives").Activate
  Rows("7:7").EntireRow.Hidden = False

  With Worksheets("Archives")
dlg = .Cells(Rows.Count, 2).End(xlUp).Row + 1
    With .Cells(dlg, 2)
      .Value = Ws.[B11]       'Date
      .Offset(, 1) = Ws.[C10] 'N° Facture
      .Offset(, 2) = Ws.[E50] 'Total ht
      .Offset(, 3) = Ws.[E51] 'Tva
      .Offset(, 4) = Ws.[E52] 'Total ttc
      .Offset(, 5) = Ws.[B12] 'Client
    End With
    Rows("7:7").EntireRow.Hidden = True
  End With

End Sub

Cordialement

@zinelamri : sois patient : je suis en train de te préparer quelque chose de super !

Re bonjour le forum

Re bonjour Amadéus, dhany

C'est exact le code juste pour effectuer l'opération d'archivage.

ça marche très bien.

Je tiens à vous remercier pour votre aide et votre soutien.

aussi je vous remercie dhany pour collaboration.

Cordialement.

édit: J attend la surprise avec impatience

@zinelamri

Tu a écrit :

edit : J'attends la surprise avec impatience

C'est prêt ! je te retourne ci-dessous ton fichier Excel modifié ; quand tu verras toutes les modifs que j'ai faites, tu comprendras pourquoi ma réponse a autant tardé, et tu sauras aussi que ça valait l'coup d'attendre !!!

10gsf-zine.xlsm (30.88 Ko)

À l'ouverture du fichier, tu es sur la feuille "Archives" ; j'ai laissé le seul tableau de gauche, et tu peux voir que toutes les lignes de données sont vides ; bonus : après avoir supprimé sur cette feuille toutes les lignes inutiles sous ce tableau, la taille du fichier est passée de 273 Ko à 31 Ko ➯ le fichier est beaucoup plus léger, il se télécharge et il s'ouvre plus rapidement !

IMPORTANT

Que la ligne 7 soit masquée ou non, mon code VBA marche très bien, et de la même façon.

(donc tu peux masquer la ligne 7 ou la laisser affichée, à ton choix)


Va sur la feuille "Facture" ; j'ai amélioré toute la présentation, j'ai amélioré les formules existantes, et j'ai rajouté des formules manquantes.

Ne plus saisir de donnée en colonne A : le N° de ligne se mettra automatiquement quand tu saisiras le Produit (Article).

Regarde la formule en A17 ; puis la formule en A18 (déjà tirée vers le bas jusqu'en A48).

Regarde la formule en E17 (déjà tirée vers le bas jusqu'en E48) ➯ Montant HT = Qté × Prix U.

Regarde la formule en E50 ; puis la formule en E51 ; et la formule en E52.


Si une facture est vide (sans aucun article) :

a) Toutes les lignes de données sont vides, de la ligne 17 à la ligne 48.

b) E50 ; E51 ; E52 : ces 3 cellules sont vides aussi.

NB : si E50 est vide ou vaut 0, la facture ne sera pas archivée ! en effet, c'est utile d'archiver uniquement les factures dont le Total HT est différent de 0 ; ta MsgBox initiale qui affichait "Aucune donnée à archiver...?" est donc devenue inutile : je l'ai enlevée.


Ctrl e (e comme Enregistrer)archivage (idem clic sur le bouton "Archives")

Va vérifier sur la feuille "Archives" ; c'est ok ?

Alt F11 pour voir le code VBA, puis revenir sur Excel


Si besoin, tu peux demander une adaptation.

Merci de me dire si ça te convient.

dhany

@zinelamri

Relis bien tout mon message précédent, car j'y ai apporté beaucoup de modifications.

(le fichier est resté le même : je ne l'ai pas changé)

dhany

Bonjour le forum,

salutations spéciales à vous dhany

"...Celui qui ne remercie pas les gens n'a pas remercié Allah..."

Merci beaucoup, j'ai bénéficié de beaucoup de trucs ça faciliter mon travail.

Bien Cordialement et merci.

zinelamri

Bonjour zinelamri,

Tu a écrit :

salutations spéciales à vous dhany

"...Celui qui ne remercie pas les gens n'a pas remercié Allah..."

Merci beaucoup, j'ai bénéficié de beaucoup de trucs, ça facilite mon travail.

Merci pour ton retour ! « wa alikoum salam ! » tu as droit à une petite énigme : le coin sud-est de mon post d'hier à 19:04 est-il la direction qu'ont prises les 3 rois mages dans le désert ? indice : pense à l'un des atouts d'un jeu de cartes (il est sur tous les posts, et seul son contour est dessiné, mais il sert surtout pour le message qui a aidé à résoudre l'exercice).

dhany

bonjour dhany

pouvez-vous m'expliquer plus ?

Parce que je ne le comprends pas les énigmes

contactez moi-même en privé..

merci

Je viens de te répondre par MP (Message Privé).

dhany

Rechercher des sujets similaires à "coller deuxieme ligne vide vba"