Report de Digit xx

Bonjour,

Je viens solliciter votre aide précieux

En effet Dans un classeur Excel je voudrai récupérer les deux dernier digit valeur decimal d'une colonne 'M' pour le mettre dans la colonne 'K' correspondante si colonne 'L' = "SBUF"

Merci par avance de votre support

Cordialement

Et portez vous bien !!!!

4buf.xlsx (46.27 Ko)

Bonjour,

Une simple formule SI en colonne K :

=SI(L2="SBUF";DROITE(M2;2);"")

Merci Pijaku

Désolé je me suis mal exprimé.

c'est une version Macro qui serait plus adapté a mon cas.

Car mon projet comporte une bonne trentaine de classeur de meme type

donc chaque heure un nouveau classeur est crée automatiquement.

J'ai une macro qui exploite chaque classeur sur demande mai je me suis que la routine

qui génère le classeur ne remonte pas les deux digit des "SBUF" donc le but de ma requête.

[Dans un classeur Excel je voudrai récupérer les deux dernier digit valeur decimal d'une colonne 'M' pour le mettre dans la colonne 'K' si vide correspondante si colonne 'L' = "SBUF"]

Bien cordialement

Bien.

Je n'ai rien compris à ton précédent envoi.

Par macro :

Sub InsereFormule()
Dim DL As Long
    DL = derlig_reelle(Worksheets("20150513_003650717_KS32A6_PRD").Columns(12))
    Range("J2:J" & DL).Formula = "=IF(L2=""SBUF"",RIGHT(M2,2),"""")"
End Sub

Merci infiniment Pijaku,

la fonction "SI" est très chronophage

appliquer pour plus de 60000 lignes par classeur x30

c'est hyper long et la sauvegarde du dossier est immense.

N'y aurait-il pas une autre technique s'il te plait sans insérer de formule mais juste mettre les deux digit

Merci

Bien cordialement

Bonsoir,

Est ce que quelqu'un aurait une idée ?

Par avance Merci

Cordialement

Bonjour,

Essaye ce code :

Option Explicit

    Private Function derlig_reelle(plage As Range) As Long
       If WorksheetFunction.CountA(plage) = 0 Then derlig_reelle = plage.Cells(1, 1).Row: Exit Function
       derlig_reelle = plage.Find("*", , , , , xlPrevious).Row
    End Function

Sub DeuxDigits()
Dim DL As Long, v As Variant, L As Long
    DL = derlig_reelle(Worksheets("20150513_003650717_KS32A6_PRD").Columns(12))
    v = Range("L2:M" & DL).Value
    For L = LBound(v) To UBound(v)
        If v(L, 1) = "SBUF" Then
            Worksheets("20150513_003650717_KS32A6_PRD").Range("K" & L + 1).Value = Right("00" & v(L, 2), 2)
        End If
    Next
End Sub

Merci Pijaku

Pourras-tu s'il te plait m'aider à améliorer ce code

car je voudrai appliqué la routine pour chaque onglet commençant par 2015

et le code suivant en Brut ne fonctionne pas car au delà de certain nombre de classeur

il se met en rade pour "dépassement"

Merci par avance

Cordialement

Sub traitSBUF()

Dim derlig As Integer, i As Integer

Dim ws As Worksheet

For Each ws In Worksheets

ws.Select

derlig = Range("L" & Rows.Count).End(xlUp).Row

For i = 1 To derlig

If Cells(i, 12).Value = "SBUF" Then

If Cells(i, 11).Value = "" Then

Cells(i, 11).Value = Right(Cells(i, 13).Value, 2)

End If

End If

Next i

Next ws

End Sub

0buf.xlsx (79.32 Ko)
Rechercher des sujets similaires à "report digit"