Extraction de données feuille Excel

[Résolu/Fermé]
Signaler
Messages postés
60
Date d'inscription
vendredi 21 juin 2013
Statut
Membre
Dernière intervention
9 septembre 2013
-
Messages postés
15957
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 septembre 2021
-
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

Messages postés
15957
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 septembre 2021
1 534
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
15957
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 septembre 2021
1 534
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
Messages postés
60
Date d'inscription
vendredi 21 juin 2013
Statut
Membre
Dernière intervention
9 septembre 2013

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