Extraction de données feuille Excel

Résolu/Fermé
klissou69 Messages postés 60 Date d'inscription vendredi 21 juin 2013 Statut Membre Dernière intervention 9 septembre 2013 - 19 août 2013 à 15:55
f894009 Messages postés 17192 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 juin 2024 - 19 août 2013 à 17:01
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
A voir également:

3 réponses

f894009 Messages postés 17192 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 juin 2024 1 708
19 août 2013 à 17:01
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
f894009 Messages postés 17192 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 16 juin 2024 1 708
19 août 2013 à 16:16
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
klissou69 Messages postés 60 Date d'inscription vendredi 21 juin 2013 Statut Membre Dernière intervention 9 septembre 2013
19 août 2013 à 16:42
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