Dernière ligne d'une colonne

Bonjour pourriez vous m'aider je cherche à indiquer a ma macro la dernière ligne de chacune des colonnes.

Private Sub action(plage As Range, nomFichier As String, cellule As Range)
  With ActiveSheet.UsedRange

Dim oL As Object, oC As Object, Tmp As String, Sep$
Sep = ";"
Open "\\195.1.1.70\seriem\" & nomFichier & ".csv" For Output As #1
For Each oL In plage.Rows
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & Sep
Next
Print #1, Tmp
Next
   End With
Close
cellule.Interior.ColorIndex = 43
End Sub

Private Sub action_Click()
Range("H13").Interior.Color = RGB(242, 242, 242)
Range("H15").Interior.Color = RGB(242, 242, 242)
Range("H17").Interior.Color = RGB(242, 242, 242)
Range("H19").Interior.Color = RGB(242, 242, 242)
Range("H21").Interior.Color = RGB(242, 242, 242)
Range("H23").Interior.Color = RGB(242, 242, 242)

Call action(Sheets("Commande Achat OPALE").Range("A1:C" & Sheets("Commande Achat OPALE").Range("C981").End(3).Row), "FMPRO\INJECTEUR\FINJBDA_I0401", Range("H13"))
Call action(Sheets("Commande Client PARITYS Entete").Range("A1:O" & Sheets("Commande Client PARITYS Entete").Range("O981").End(3).Row), "INJECTEUR\DLignes_OPALE___", Range("H15"))
Call action(Sheets("Commande Client PARITYS Lignes").Range("A1:G" & Sheets("Commande Client PARITYS Lignes").Range("G981").End(3).Row), "INJECTEUR\DLignes_OPALE___", Range("H17"))
Call action(Sheets("Commande Client PARITYS Message").Range("A1:B" & Sheets("Commande Client PARITYS Message").Range("B1").End(3).Row), "INJECTEUR\DMessages_OPALE___", Range("H19"))
Call action(Sheets("Commande Client PARITYS Log").Range("A1:B" & Sheets("Commande Client PARITYS Log").Range("B1").End(3).Row), "INJECTEUR\DLog_OPALE___", Range("H21"))
Range("H23").Interior.Color = RGB(227, 165, 41)
End Sub

merci par avance

Morgan

Bonjour,

Pour colonne C par exemple :

derlig=cells(rows.count,"C").end(xlup).row

ou directement sa valeur :

v=cells(rows.count,"C").end(xlup).value

eric

Merci Eric Peux tu me montrer comment l'intégrer ici , merci par avance

Call action(Sheets("Commande Achat OPALE").Range("A1:C" & Sheets("Commande Achat OPALE").Range("C981").End(3).Row), "FMPRO\INJECTEUR\FINJBDA_I0401", Range("H13"))

sans doute :

With Sheets("Commande Achat OPALE")
    Call Action(.Range("A1:C" & .Cells(Rows.Count, "C").End(xlUp).Row), "FMPRO\INJECTEUR\FINJBDA_I0401", Range("H13"))
End With

Bonjour Et merci encore,

j'ai encore mon problème je pensais que ça le résoudrait, dans mon fichier excel j'ai une formule qui dit si la condition n'est pas remplie, mettre "" ce qui ne doit pas être interprétée par la macro comme vide ? du coup mes lignes vides apparaissent dans mon fichier csv du moins les séparateurs ;;;;;;

Aurais tu une idée?

je te remercie par avance

Private Sub action(plage As Range, nomFichier As String, cellule As Range)
  With ActiveSheet.UsedRange

Dim oL As Object, oC As Object, Tmp As String, Sep$
Sep = ";"
Open "\\195.1.1.70\seriem\" & nomFichier & ".csv" For Output As #1
For Each oL In plage.Rows
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & Sep
Next
Print #1, Tmp
Next
   End With
Close
cellule.Interior.ColorIndex = 43
End Sub

Private Sub action1_Click()
Range("H13").Interior.Color = RGB(242, 242, 242)
Range("H15").Interior.Color = RGB(242, 242, 242)
Range("H17").Interior.Color = RGB(242, 242, 242)
Range("H19").Interior.Color = RGB(242, 242, 242)
Range("H21").Interior.Color = RGB(242, 242, 242)
Range("H23").Interior.Color = RGB(242, 242, 242)

With Sheets("Commande Achat OPALE")
    Call action(.Range("A1:C" & .Cells(Rows.Count, "C").End(xlUp).Row), "FMPRO\INJECTEUR\FINJBDA_I0401", Range("H13"))
End With

With Sheets("Commande Client PARITYS Entete")
    Call action(.Range("A1:O" & .Cells(Rows.Count, "O").End(xlUp).Row), "INJECTEUR\DEntetes_OPALE___", Range("H15"))
End With

With Sheets("Commande Client PARITYS Lignes")
    Call action(.Range("A1:G" & .Cells(Rows.Count, "G").End(xlUp).Row), "INJECTEUR\DLignes_OPALE___", Range("H17"))
End With

With Sheets("Commande Client PARITYS Message")
    Call action(.Range("A1:B" & .Cells(Rows.Count, "B").End(xlUp).Row), "INJECTEUR\DMessages_OPALE___", Range("H19"))
End With

With Sheets("Commande Client PARITYS Log")
    Call action(.Range("A1:B" & .Cells(Rows.Count, "B").End(xlUp).Row), "INJECTEUR\DLog_OPALE___", Range("H21"))
End With

Range("H23").Interior.Color = RGB(227, 165, 41)
End Sub

J'ai eu l'idée de copier en valeur les colonnes dans une nouvelle feuille et après d'appliquer la macro, mais les lignes vides apparaissent toujours

une idée ?

Merci par avance

Bonjour,

une cellule avec une formule n'est pas vide.

Pour un csv que tous les séparateurs de champ apparaissent c'est normal. Sinon comment veux-tu qu'il sache que "toto" est la 3ème valeur si les 2 premières sont vide ?

eric

Merci pour ta réponse,

d'où l'intéret de passer par une page intermédiaire tmp_OPALE par exemple dans laquelle j'ai copié en valeur donc les résltat en "" sont transformée en cellule vide, jusque la j'ai bon ?

de ce fait lors que j'applique la macro sur cette nouvelle page elle devrait etre considérée comme vide ces lignes non? et de ce fait ne pas être prise par la macro? A moins qu'excel stock quelque par que ces lignes sont issues d'un quelconque traitement antérieur?

Merci

jusque la j'ai bon ?

si tu obtiens ce que tu veux, oui...

Alors cela n'a pas fonctionné, donc j'ai eu l'idée de remplacer mes champs vides par AAAAAAA dans mes formules,

Puis j'ai supprimer toutes les lignes dont ma cellule colonne A contenait AAAAAAA

Merci je met en résolu

Rechercher des sujets similaires à "derniere ligne colonne"