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 :

Revenir à la première ligne à la fin d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut Revenir à la première ligne à la fin d'une macro
    Bonjour à tous,

    Je souhaiterais savoir comment revenir à la première ligne du classeur (de manière automatique à l'issue de ma macro.

    J'ai essayé le code suivant qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("nom de la feuille").Cells(ligne désirée, colonne désirée).Select
    Une idée ?

    Merci pour votre aide

    Cordialement

    Vincent

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    bonjour,
    et comme çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").Rows(1).Select
    EDIT:
    ou comme çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").Cells(1, 1).EntireRow.Select

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Attention, pour pouvoir sélectionner une cellule dans une feuille, il faut que cette feuille soit la feuille active
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("nom de la feuille").Activate
    Cells(ligne désirée, colonne désirée).Select

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    Les solutions proposées ne fonctionnent pas.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    Sub Budget()
     
    '
    ' Budget Macro
    ' Macro enregistrée le 02/09/2010 par richarde
    ' Calculs des budgets total et dpt
    '
     
    Dim labo As String
    Dim Dpt As String
     
    Dim ligne As Integer
     
    Dim Choix As String
     
    Dim BudgetR052 As Single
    Dim BudgetR053 As Single
    Dim BudgetTot As Single
    Dim BudgetAtt As Single
    Dim BudgetAttR052 As Single
    Dim BudgetAttR053 As Single
     
    Dim PctR052 As Integer
    Dim PctR053 As Integer
    Dim PctAttR052 As Integer
    Dim PctAttR053 As Integer
     
     
    ligne = 7
    For Each Cell In Range("H7:H500")
        Choix = Cells(ligne, 12)
        If Choix = "Validé" Then
            BudgetTot = BudgetTot + Cell.Value
        ElseIf Choix = "En attente" Then
            BudgetAtt = BudgetAtt + Cell.Value
        End If
        ligne = ligne + 1
    Next
     
    ligne = 7
    For Each Cell In Range("B7:B500")
        Choix = Cells(ligne, 12)
        labo = Cell.Value
        Dpt = Mid(labo, 4, 1)
        If Choix = "Validé" Then
            If Dpt = "2" Then
                BudgetR052 = BudgetR052 + Cells(ligne, 8).Value
            Else
                BudgetR053 = BudgetR053 + Cells(ligne, 8).Value
            End If
        ElseIf Choix = "En attente" Then
        If Dpt = "2" Then
                BudgetAttR052 = BudgetAttR052 + Cells(ligne, 8).Value
            Else
                BudgetAttR053 = BudgetAttR053 + Cells(ligne, 8).Value
            End If
        End If
        ligne = ligne + 1
    Next
     
    If BugdetTot = "0" Then
        PctR052 = 0
        PctR053 = 0
    ElseIf BudgetTot > 0 Then
        PctR052 = BudgetR052 / BudgetTot * 100
        PctR053 = BudgetR053 / BudgetTot * 100
    End If
     
    If BugdetAtt = "0" Then
        PctAttR052 = 0
        PctAttR053 = 0
    ElseIf BudgetAtt > 0 Then
        PctAttR052 = BudgetAttR052 / BudgetAtt * 100
        PctAttR053 = BudgetAttR053 / BudgetAtt * 100
    End If
     
    Range("F1") = BudgetTot
    Range("F2") = PctR052 & "%"
    Range("F3") = PctR053 & "%"
    Range("H1") = BudgetAtt
    Range("H2") = PctAttR052 & "%"
    Range("H3") = PctAttR053 & "%"
     
     
    Sheets("Recueil 2011").Activate
    Cells(1, 1).Select
     
    End Sub


    Vincent

  5. #5
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    remplace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Recueil 2011").Activate
    Cells(1, 1).Select
    par ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("Recueil 2011").Activate
    Cells(1, 1).EntireRow.Select
    cells (1,1)sélectionne une cellule ici A1
    cells (1,1).entirerow sélectionne la ligne entière

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    En fait,

    Peu m'importe qu'il sélectionne une ligne ou une cellule, ce qui m'intéresse c'est qu'une fois la macro finie, la ligne 1 de ma feuille doit être visible (et non pas la 147 ou la 235).

    J'ai également omis de préciser que ma fenêtre est fractionnée (je ne sais pas si cela à une importance).

    Or pour l'instant la ligne qui apparaît à l'écran est la dernière colorée.

  7. #7
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut revenir à la première ligne.
    Bonjour,

    Dans ce cas,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.ScrollRow = 1
    (voir aide en ligne)

    Cordialement.

    Marcel

  8. #8
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    J'ai également omis de préciser que ma fenêtre est fractionnée (je ne sais pas si cela à une importance).
    ben oui .
    Marcel à vu juste

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    ça ne fonctionne toujours pas ...

  10. #10
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut SCROLLROW
    Où as-tu-placé la ligne de code proposée ?

    Sur quelle ligne ton code présente-t-il un bug ?

    Quel est le message d'erreur?

    Cordialement.

    Marcel

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    Où as-tu-placé la ligne de code proposée ?
    J'ai placé la ligne de code juste avant le end sub

    Sur quelle ligne ton code présente-t-il un bug ?

    Quel est le message d'erreur?
    Je n'ai pas de bug, ni de message d'erreur, la fen^tre ne revient simplement pas au début

    sinon le code tourne correctement

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    Sub Budget()
     
    '
    ' Budget Macro
    ' Macro enregistrée le 02/09/2010 par richarde
    ' Calculs des budgets total et dpt
    '
     
    Dim labo As String
    Dim Dpt As String
     
    Dim ligne As Integer
     
    Dim Choix As String
     
    Dim BudgetR052 As Single
    Dim BudgetR053 As Single
    Dim BudgetTot As Single
    Dim BudgetAtt As Single
    Dim BudgetAttR052 As Single
    Dim BudgetAttR053 As Single
     
    Dim PctR052 As Integer
    Dim PctR053 As Integer
    Dim PctAttR052 As Integer
    Dim PctAttR053 As Integer
     
     
    ligne = 7
    For Each Cell In Range("H7:H500")
        Choix = Cells(ligne, 12)
        If Choix = "Validé" Then
            BudgetTot = BudgetTot + Cell.Value
        ElseIf Choix = "En attente" Then
            BudgetAtt = BudgetAtt + Cell.Value
        End If
        ligne = ligne + 1
    Next
     
    ligne = 7
    For Each Cell In Range("B7:B500")
        Choix = Cells(ligne, 12)
        labo = Cell.Value
        Dpt = Mid(labo, 4, 1)
        If Choix = "Validé" Then
            If Dpt = "2" Then
                BudgetR052 = BudgetR052 + Cells(ligne, 8).Value
            Else
                BudgetR053 = BudgetR053 + Cells(ligne, 8).Value
            End If
        ElseIf Choix = "En attente" Then
        If Dpt = "2" Then
                BudgetAttR052 = BudgetAttR052 + Cells(ligne, 8).Value
            Else
                BudgetAttR053 = BudgetAttR053 + Cells(ligne, 8).Value
            End If
        End If
        ligne = ligne + 1
    Next
     
    If BugdetTot = "0" Then
        PctR052 = 0
        PctR053 = 0
    ElseIf BudgetTot > 0 Then
        PctR052 = BudgetR052 / BudgetTot * 100
        PctR053 = BudgetR053 / BudgetTot * 100
    End If
     
    If BugdetAtt = "0" Then
        PctAttR052 = 0
        PctAttR053 = 0
    ElseIf BudgetAtt > 0 Then
        PctAttR052 = BudgetAttR052 / BudgetAtt * 100
        PctAttR053 = BudgetAttR053 / BudgetAtt * 100
    End If
     
    Range("F1") = BudgetTot
    Range("F2") = PctR052 & "%"
    Range("F3") = PctR053 & "%"
    Range("H1") = BudgetAtt
    Range("H2") = PctAttR052 & "%"
    Range("H3") = PctAttR053 & "%"
     
     
    ActiveWindow.ScrollRow = 1
     
    End Sub

  12. #12
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par Vincent32 Voir le message
    J'ai également omis de préciser que ma fenêtre est fractionnée (je ne sais pas si cela à une importance).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWindow.Panes(1).Activate
    Range("A1").Select
    ou Panes(2)...Panes(3)...selon la fraction dans laquelle tu veux que cela se produit

  13. #13
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut Fenêtres fractionnées
    Sur l'aide en ligne

    Note
    Si la fenêtre est fractionnée, la propriété ScrollRow de l'objet Window fait référence au volet supérieur gauche. Si les volets sont figés, la propriété ScrollRow de l'objet Window exclut les zones figées.
    Si tes fenêtres sont figées alors il te faut libérer les volets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Application.ScreenUpdating = False
    With ActiveWindow
        .FreezePanes = False
        .ScrollRow = 1
        .FreezePanes = True
    End With
    Cordialement.

    Marcel

  14. #14
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    La fessée n'y aura rien changé, je ne reviens toujours pas à la première ligne


    Sinon Marcel tu es un dieu (surtout auprès de ma collègue)

    en tout cas merci à tous les trois pour votre aide

    Bon week end

  15. #15
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Voilà ce qui se passe lorsqu'on ne dit pas tout ou lorsqu'on s'exprime mal...
    Ta fenêtre n'est pas fractionnée mais figée

  16. #16
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    En fait elle était fractionné mais suite à la manip de marcel elle est devenu figé. Enfin le rendu est le même donc le programme fonctionne

    En tout cas merci

    Vincent

    (Désolé j'avais oublié de cocher résolu, voilà mon erreur réparée)

  17. #17
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut fenêtre figée
    Quelle manipulation ?

    A aucun moment, je n'ai commencé de code par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.FreezePanes = True
    Merci pour ta réponse.

    Marcel

  18. #18
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Points : 153
    Points
    153
    Par défaut
    Bonjour,

    Désolé pour cette longue attente avant ma réponse.

    Avant d'inscrire tes lignes code dans le fichier (et d'avoir fait tourner le programme), le fichier était "fractionné". une fois que j'ai fait tourner le programme, de "fractionné" mon fichier est devenu "figé" au même endroit que le fractionnement.

    Au final, fractionné ou figé cela revient au même pour moi.

    Je réitère tous mes remerciements au près de vous tous pour m'avoir aidé.

    Bonne journée,

    Cordialement

    Vincent

  19. #19
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour Vincent, Bonjour le Forum,

    Je tiens à préciser que je partais du fait que tes fenêtres étaient figées avant ma proposition de code.
    C'est d'ailleurs je pense ce qu'en a conclu Fring, que je salue au passage.
    Sans cela, la ligne de code proposée au départ aurait été effective.

    N'ayant pas pour habitude d'encombrer le forum, j'en resterai là.

    M.

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

Discussions similaires

  1. [AC-2000] Suppression de premières lignes des doublons dans une requête
    Par jyoboue2008 dans le forum Access
    Réponses: 3
    Dernier message: 17/03/2014, 18h55
  2. Détection de la première ligne vide à partir d'une ligne n
    Par dammex dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 13/07/2012, 21h46
  3. Passer à la ligne à la fin d'une phrase
    Par mikael2235 dans le forum Langage
    Réponses: 12
    Dernier message: 08/08/2010, 11h17
  4. [E-07] selection identique au début et à la fin d'une macro
    Par jblouvieaux dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/11/2008, 08h37
  5. Fermer un classeur Excel à la fin d'une macro
    Par alex830001 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2008, 19h29

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