Extraction de données feuille Excel

Résolu
klissou69 Messages postés 61 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    0
  3. klissou69 Messages postés 61 Statut Membre
     
    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
    0