Code VBA sur une colonne jusqu'à dernière ligne pleine

Sub MEFSTOCK()
'
' MEFSTOCK Macro
'

'
    Columns("B:B").Select
    Range("B2").Activate
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("B4").Select
    ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],SEARCH("" ("",RC[-1])-1)"
    Range("B4").Select
    Selection.AutoFill Destination:=Range("B4:B1000")
    Range("B4:B1000").Select
    Range("A2:A3").Select
    Selection.Cut Destination:=Range("B2:B3")
    Columns("B:B").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("A:A").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Columns("B:D").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A3").Select

End Sub

Bonjour,

sur ce code VBA (qui fonctionne très bien), au lieu d'appliquer le code jusqu'à B1000, je souhaiterai l'appliquer jusqu'à la dernière ligne pleine

J'ai pas mal cherché (des solutions comme lastrow / row.count...) mais mon niveau actuel sur VBA me fait vraiment galérer ^^

Je vous remercie pour votre aide

Cdt

Bonjour,

Essaye de remplacer

Range("B4:B1000")

par

Range("B" & Rows.Count).End(xlUp).Row

Et tu pourrais par ailleurs retirer beaucoup de .Select

Bonsoir Thrrybo,

merci de ton aide, mais malheureusement je n'y parviens pas.

J'ai beau remplacer ma ligne par la tienne en long en large et en travers, rien n'y fait.

Je téléverse deux fichiers :

* un .xlsx qui est un exemple de fichier à modifier

* un .xlsm qui comporte la macro à modifier

22testclem.xlsm (34.04 Ko)
10testclem.xlsx (31.47 Ko)

Peut-être cela sera plus simple pour tester ta solution

Et qu'est-elle censé faire cette macro ? Car chez moi, ça retire toutes les informations de la colonne A et indique l'erreur #VALEUR

Elle est sensée retirer les caractères entre parenthèses de la colonne A, pour ne laisser que les intitulés des structures marchandises.

Ce que je fais :

Insertion colonne entre A&B / en B4 formule =GAUCHE(A4;CHERCHE(" (";A4)-1) / double click pour étendre la formule (ce qui me donne un autofill en vba, ce que je veux modifier pour aller jusqu'à la dernière ligne remplie) / copie de la plage B / collage des valeurs / suppression de la colonne A pour épurer le fichier

Je cherche à automatiser ces actions en macro car je vais l'utiliser sur plusieurs fichiers à plusieurs reprises

Si les parenthèses se trouvent toujours à la fin et pas au mileu, tu peux utiliser ça.

27testclem-bis.xlsm (34.99 Ko)

Je ne parviens pas faire fonctionner ce code...

C'est pas grave, merci de ton aide j'y reviendrai plus tard :)

Bonjour,

un collègue de travail m'a finalement sorti du pétrin avec le code suivant :

Sub MEFSTOCK()
'
' MEFSTOCK Macro
'

'
Dim lig_fin As String

lig_fin = ActiveSheet.UsedRange.Rows.Count

    Columns("B:B").Select
    Range("B2").Activate
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("B4").FormulaR1C1 = "=LEFT(RC[-1],SEARCH("" ("",RC[-1])-1)"
    Range("B4").Copy
    Range(Range("B4"), Range("B4").Offset(lig_fin - 4, 0)).PasteSpecial Paste:=xlPasteFormulas
    Columns("B:B").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("A:A").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Columns("B:D").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Range("A3").Select

End Sub

Cela répond parfaitement à mon besoin :)

Rechercher des sujets similaires à "code vba colonne derniere ligne pleine"