IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

{VBA Excel] Récupere une ligne avec ces infos


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut {VBA Excel] Récupere une ligne avec ces infos
    Voila j'ai modifier une macro qui doit pouvoir compter et apres etablir un journal de bord qui inscrit des infos a chaque fois que je depasser 3000 tonnes

    et je voudrais recuper la derniere ligne du journal de bords et y faire apparaitre sur un message box

    voila ma macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub compter()
    
    Dim totlig As Long, poid As Double, i As Long
    With Sheets("Saisie") ' Travaille sur la feuille Saisie
    totlig = .Range("Q65536").End(xlUp).Row ' Recupere le nombre de ligne
    poid = 0# ' Initialise le poid calculé
    Sheets("Rapport").Range("A2:A65500").ClearContents
    Sheets("Rapport").Range("B2:C65500").ClearContents
    Sheets("Rapport").Range("C2:C65500").ClearContents
    For i = 5 To totlig ' Demarre la boucle à la igne 5, la 1,2,3,4 sont des titres
            If IsNumeric(Range("Q" & i).Value) Then
            poid = poid + (.Range("Q" & i).Value / 1000) ' additione la valeur poids ramenée en tonnes
            End If
    If poid >= 3000 Then ' test avec la prochaine valeur si ca depasse les 3000 tonnes
    Sheets("Rapport").Range("A" & Sheets("Rapport").Range("A65536").End(xlUp).Row + 1) = poid & " Kg" & "  A la ligne " & i
    Sheets("Rapport").Range("B" & Sheets("Rapport").Range("B65536").End(xlUp).Row + 1) = Range("M" & i)
    Sheets("Rapport").Range("C" & Sheets("Rapport").Range("C65536").End(xlUp).Row + 1) = Range("J" & i)
    
    
    Sheets ("Rapport")
    DerniereLigne = Range(Cel).CurrentRegion.End(xlDown).Row
    MsgBox ("depassement a la ligne: DerniereLigne")
    
    .Range("Q" & i).Interior.ColorIndex = 3 ' je colorie en rouge la cellule
    poid = 0# ' remise à zero des calculs
    Else
    .Range("Q" & i).Interior.ColorIndex = xlNone ' sinon j'enleve la couleur
    End If
    Next i
    End With
    End Sub
    et mon probleme viens que je n'arrive pas a lire la derniere ligne et la faire apparaitre dans une message box


    Ps:j'ai pris la méthode de lire la derniere ligne de ouskel dans la partie contribution

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Essaie ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub compter()
    Dim totlig As Long, poid As Double, i As Long
    Dim FL1 As Worksheet
    Dim FL2 As Worksheet
        Set FL1 = Worksheets("Saisie")
        Set FL2 = Worksheets("Rapport")
        With FL1 ' Travaille sur la feuille Saisie
            totlig = .Range("Q65536").End(xlUp).Row ' Recupere le nombre de ligne
            poid = 0# ' Initialise le poid calculé
            FL2.Range("A2:A65500").ClearContents
            FL2.Range("B2:C65500").ClearContents
            FL2.Range("C2:C65500").ClearContents
            For i = 5 To totlig ' Demarre la boucle à la igne 5, la 1,2,3,4 sont des titres
                If IsNumeric(Range("Q" & i).Value) Then
                    poid = poid + (.Range("Q" & i).Value / 1000) ' additione la valeur poids ramenée en tonnes
                End If
                If poid >= 3000 Then ' test avec la prochaine valeur si ca depasse les 3000 tonnes
                    FL2.Range("A" & FL2.Range("A65536").End(xlUp).Row + 1) = poid & " Kg" & "  A la ligne " & i
                    FL2.Range("B" & FL2.Range("B65536").End(xlUp).Row + 1) = Range("M" & i)
                    FL2.Range("C" & FL2.Range("C65536").End(xlUp).Row + 1) = Range("J" & i)
     
                    MsgBox "depassement à la ligne : " & FL2.Range(Cel).CurrentRegion.End(xlDown).Row
     
                    .Range("Q" & i).Interior.ColorIndex = 3 ' je colorie en rouge la cellule
                    poid = 0# ' remise à zero des calculs
                  Else
                    .Range("Q" & i).Interior.ColorIndex = xlNone ' sinon j'enleve la couleur
                End If
            Next i
        End With
    End Sub
    Si tu n'indentes pas ton code, tu vas au devant de grosses difficultés pour trouver tes erreurs
    A+

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    Désolé pour l'indentation j'oublie a chaque fois

    desoler ouskel mais ton programme plante a la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "depassement à la ligne : " & FL2.Range(Cel).CurrentRegion.End(xlDown).Row

    voici l'erreur qui apparait

    la methode'Range'de l'objet'_Worksheets' à échoué

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Normal...

    cel n'est pas défini.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "depassement à la ligne : " & FL2.Range("A").CurrentRegion.End(xlDown).Row
    ben j'ai essaye de definir Cell comme ceci ca ne marche pas
    il faut que je le definisse a part?mais comment?

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour Cel, autant pour moi, je n'avais pas vu.
    Remplace "A" par "A1". Un range doit comporter au minimum deux indications, Colonne et ligne.
    A1 doit faire partie de la plage de cellule. Si ce n'est pas le cas, remplace le par l'adresse d'une cellule faisant partie de cette plage.
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme en VBA Excel : supprimer une ligne doublante
    Par yanly dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2007, 13h54
  2. {VBA Excel} Simplifier une macro avec une copie
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/06/2007, 14h38
  3. [VBA-Excel] Garder une ligne de listview selectionné
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2006, 14h55
  4. [VBA Excel] ecrire le caractere " avec une macro
    Par oktopuces dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/09/2005, 22h56
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo