VBA comment effacer la derniere cellule plein

Résolu
julsof Messages postés 13 Statut Membre -  
Leahkim Messages postés 3219 Statut Membre -
Bonjour,

Voila, mon probleme.
Je suis en train de développer une petite structure en VB pour une amie mais je bloque sur la fin.
En fait j'incrémente des lignes dans un tableau via des input box.
En fin de code j'aimerais sélectionner la dernière cellule pleine de la colonne E et voir si elle est égale à 0.
ensuite si elle est = à 0 j'aimerais l'effacer sinon la laisser.
Le problème est que je n'arrive pas à intégrer mon IF then
en français je voudrais faire ça :
if (la derniere cellule pleine de la colonne E = 0) then (efface là) sinon (ne fait rien)

voila mon code :
Sub creation_article()

Dim creation_article As String

MsgBox "Vous allez créer un nouvel article H2O", vbDefaultButton1
reponse = MsgBox("Voulez-vous continuer ?", vbYesNo)
If reponse = vbNo Then Exit Sub
Ref = InputBox("Indiquez la REFERENCE de l'article", "CREATION D'ARTICLE")
désignation = InputBox("Indiquez DESIGNATION de l'article", "CREATION D'ARTICLE")
PUachatHT = InputBox("Indiquez le Prix Unitaire d'achat HT", "CREATION D'ARTICLE")
PUventeHT = InputBox("Indiquez le Prix Unitaire de vente HT", "CREATION D'ARTICLE")

Sheets("base").Range("N1").Value = Ref
Sheets("base").Range("O1").Value = désignation
Sheets("base").Range("P1").Value = PUachatHT
Sheets("base").Range("Q1").Value = PUventeHT

Sheets("base").Select
Range("N1:Q1").Select
Selection.Copy
Range("A" & Range("A65536").End(xlUp).Row + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("base").Select

Sheets("base").Select
Range("N1:Q1").Select
Selection.ClearContents

Range("E" & Range("E65536").End(xlUp).Row + 0).Select
Selection.Copy
Range("E" & Range("E65536").End(xlUp).Row + 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False

merci de votre aide
Configuration: Windows XP
Internet Explorer 7.0
suit office professionnel 2003

5 réponses

  1. Leahkim Messages postés 3219 Statut Membre 281
     
    if (la derniere cellule pleine de la colonne E = 0) then (efface là) sinon (ne fait rien)

    ça c'est pas vraiment possible, il n y a pas de "derniere cellule pleine" en VB ..., enfin je pense pas.

    il te faut un while:

    Dim A as Integer

    WHILE (a<ton nombre de case maximum)
    IF cells(A,E)=="" THEN row(A).select = true
    selection.delete
    WEND

    la syntaxe est pas excate, mais l'algo est la
    -1
  2. julsof Messages postés 13 Statut Membre 1
     
    merci pour ta réponse rapide leahkim,

    en fait je pense pouvoir trouver une solution à mon problème.
    J'arrive à sélectionner la cellule dont j'ai besoin ( à me placer dessus) pas de problème.
    Ce que j'essaie de faire sans y arriver encore, c'est de comparer cette cellule et de dire si elle est = O alors je la delete sinon rien

    si tu as d'autres idées je suis preneur

    merci encore
    -1
  3. Leahkim Messages postés 3219 Statut Membre 281
     
    "=0"

    tu veux dire égale au chiffre 0 ou vide ?

    égale a 0 c'est: cells(COORDONNEES).value == 0
    vide c'est cells(COORDONNEES).value == ""
    -1
  4. julsof Messages postés 13 Statut Membre 1
     
    en fait c'est ="0" , le chiffre 0 et je viens de trouver la solution ;-)

    If Range("E" & Range("E65536").End(xlUp).Row + 0) = "0" Then Rows(ActiveCell.Row).Delete

    'si la cellule au dessus de la derniere cellule de la colonne E est = à 0, alors sélectionne la ligne qui contient la cellule et efface la.

    merci de m'avoir aiguillé.
    du coup mon code est comme ceci :

    Sub creation_article()

    Dim creation_article As String

    MsgBox "Vous allez créer un nouvel article H2O", vbDefaultButton1
    reponse = MsgBox("Voulez-vous continuer ?", vbYesNo)
    If reponse = vbNo Then Exit Sub
    Ref = InputBox("Indiquez la REFERENCE de l'article", "CREATION D'ARTICLE")
    désignation = InputBox("Indiquez DESIGNATION de l'article", "CREATION D'ARTICLE")
    PUachatHT = InputBox("Indiquez le Prix Unitaire d'achat HT", "CREATION D'ARTICLE")
    PUventeHT = InputBox("Indiquez le Prix Unitaire de vente HT", "CREATION D'ARTICLE")

    Sheets("base").Range("N1").Value = Ref
    Sheets("base").Range("O1").Value = désignation
    Sheets("base").Range("P1").Value = PUachatHT
    Sheets("base").Range("Q1").Value = PUventeHT

    Sheets("base").Select
    Range("N1:Q1").Select
    Selection.Copy
    Range("A" & Range("A65536").End(xlUp).Row + 1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Sheets("base").Select

    Sheets("base").Select
    Range("N1:Q1").Select
    Selection.ClearContents

    Range("E" & Range("E65536").End(xlUp).Row + 0).Select
    Selection.Copy
    Range("E" & Range("E65536").End(xlUp).Row + 1).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

    If Range("E" & Range("E65536").End(xlUp).Row + 0) = "0" Then Rows(ActiveCell.Row).Delete

    Sheets("accueil").Select

    End Sub
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Leahkim Messages postés 3219 Statut Membre 281
     
    met le sujet en résolu alors merci
    -1