Extraction de données feuille Excel

Résolu
Bonjour,
J'aimerai extraire certaines données à partir d'un fichier brut.

Je copie/colle dans ma feuille excel une centaines de lignes.

Et je ne veux en récupérer que certaines.

Mais avec le code que j'ai produit, je suis obligé de supprimer toutes les lignes vides sinon mon code s'arrête au milieu.

Quelqu'un pourrait-il m'aider svp?

Merci d'avance .

Sub test1formMT535()
Dim k As Double 'initialisation des variables
k = 2
Dim l As Double
l = 2
Dim m As Double
m = 2
nbcolonne1 = Sheets("MT535").UsedRange.Columns.Count 'compte le nombre de colonnes non vides sur la feuille 1
nbligne1 = Sheets("MT535").UsedRange.Rows.Count 'compte le nombre de lignes non vides sur la feuille 1
'MT535.Activate 'On active la feuille 1 où l'on va appliquer le code
For i = 2 To nbligne1 'boucle qui va nous faire parcourir toutes les lignes de la feuille1

    If Left(Cells(i, 1).Value, 5) = ":35B:" Then 'Si le début de la cellule contient ":35B:"
        Sheets("Traitement").Cells(k, 1).Value = Sheets("MT535").Cells(i, 1).Value 'Alors on copie la ligne
        k = k + 1
    ElseIf Left(Cells(i, 1).Value, 5) = ":19A:" Then
        Sheets("Traitement").Cells(l, 3).Value = Sheets("MT535").Cells(i, 1).Value
        l = l + 1
    ElseIf Left(Cells(i, 1).Value, 10) = ":93B::AVAI" Then
        Sheets("Traitement").Cells(m, 5).Value = Sheets("MT535").Cells(i, 1).Value
        m = m + 1
    End If
     

Next

'Traitement.Activate
End Sub



Excel 2003

3 réponses

  1. Bonjour,

    Sub test1formMT535()
        Dim k As Double 'initialisation des variables
        k = 2
        Dim l As Double
        l = 2
        Dim m As Double
        m = 2
        '-----------------------------------------------------------
        'nbcolonne1 = Sheets("MT535").UsedRange.Columns.Count 'compte le nombre de colonnes non vides sur la feuille 1
        'nbligne1 = Sheets("MT535").UsedRange.Rows.Count 'compte le nombre de lignes non vides sur la feuille 1
        'MT535.Activate 'On active la feuille 1 où l'on va appliquer le code
        '-----------------------------------------------------------
        'derniere cellule non vide colonne A: a adapter suivant
        nbligne1 = Sheets("MT535").Range("A" & Rows.Count).End(xlUp).Row
    
        For i = 2 To nbligne1 'boucle qui va nous faire parcourir toutes les lignes de la feuille1
    
            If Left(Cells(i, 1).Value, 5) = ":35B:" Then 'Si le début de la cellule contient ":35B:"
                Sheets("Traitement").Cells(k, 1).Value = Sheets("MT535").Cells(i, 1).Value 'Alors on copie la ligne
                k = k + 1
            ElseIf Left(Cells(i, 1).Value, 5) = ":19A:" Then
                Sheets("Traitement").Cells(l, 3).Value = Sheets("MT535").Cells(i, 1).Value
                l = l + 1
            ElseIf Left(Cells(i, 1).Value, 10) = ":93B::AVAI" Then
                Sheets("Traitement").Cells(m, 5).Value = Sheets("MT535").Cells(i, 1).Value
                m = m + 1
            End If
        Next
        'Traitement.Activate
    End Sub


    Bonne suite
    1. Merci beaucoup cela fonctionne.

      Je ne maitrise pas l'utilisation des ".End(xlUp).Row"

      Tu ne saurais pas où je pourrais me documenter ?

      Bonne continuation
      1. Re,

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

        pour la colonne A:
        Range("A" & Rows.Count) ----> donne la derniere ligne de la feuille (65536 pour 2003 et avant, 1048576 pour 2007 et apres)

        Range("A" & Rows.Count).End(xlUp) ----->excel remonte jusqu'a trouver un cellule non vide

        Range("A" & Rows.Count).End(xlUp).Row ----> excel donne la ligne de le derniere cellule non vide