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 :

activer une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut activer une cellule
    bonjour, est il possible d'activer une cellule mais sans afficher la feuille?? car mon code ne marche 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
    Dim i As Integer, sh As Worksheet
    For Each sh In Worksheets
    With sh
    If UCase(Left(.Name, 3) = "DDV") Then
    .Range("AM5").Activate
    While ActiveCell.Value <> Empty
    LigneActive = ActiveCell.Row
    If .Range("AM" & LigneActive).Value <> Empty And .Range("AL" & LigneActive).Value <> Empty Then
    DerniereLigne = .Range("A65536").End(xlUp).Offset(1, 0).Row
    .Range("L" & DerniereLigne).Value = .Range("AL" & LigneActive).Value
    .Range("M" & DerniereLigne).Value = .Range("AM" & LigneActive).Value
    .Range("N" & DerniereLigne).Value = .Range("AN" & LigneActive).Value
    Else
    ....
    Si quelqu'un a une idée.... ça bloque à .Range("AM5").Activate

    codialement

  2. #2
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    en début de code
    tu peut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating=False
    (vérifie lesfôtes je suis doué pour)
    ceci va normalement supprimer le rafraichissement de l'ecran
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating=True
    en fin de code le remettra en place et tu réaffiche ce que tu veux montrer

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    la méthode Activate s'applique à une cellule se trouvant à l'intérieur de la sélection en cours. Or, tu n'as rien sélectionné avant...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut
    D'habitude cela marche sans selectionner.... du coup j'ai rajouter

    avant

    mais cela ne marche pas j'ai toujours une erreur!!

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Toujours une erreur, ?
    D'accord.
    Mais est-ce la même que précédemment ?
    Ta feuille n'est toujours pas sélectionnée...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut
    c'est bien la le problème je penses qu'on ne peu pas activer la cellule si la feuille n'est pas sélectionné!!! Rectifi si je me trompe mais il faut absolument que la feuille soit active pour activer une cellule non??? car moi je travail en with feuille...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim i As Integer, sh As Worksheet
    For Each sh In Worksheets
    With sh
    If UCase(Left(.Name, 3) = "DDV") Then

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    A quoi te sert-il d'activer la cellule AM5?

    Si c'est uniquement pour en récupérer la ligne ==>> c'est 5
    que tu peux de suite attribuer à la variable LigneActive.

    Il est de loin préférable de se passer d'activer des cellules lors d'un traitement et de travailler avec un objet typé Range
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut
    oui c'est sur mais les cellule au dessus de la ligne 5 ne doivent pas être prise en compte c'est pour ça que j'active à partir de AM5!

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu ne réponds pas à ma question.

    Si tu ne dois démarrer qu'à la ligne 5, commence à la ligne 5. Il ne te sert à rien de sélectionner AM5 pour pouvoir attribuer 5 à ligne active...

    Tu ne donnes pas ce qui se passe dans le Else... donc on doit sortir notre boule de cristal.

    Mais je répète qu'il n'est pas besoin (c'est même déconseillé) d'activer une cellule pour travailler avec.
    Tu pourrais avoir un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Cellule as range
    Set Cellule =range("am5")
    ligneactive=5
    While cellule.Value <> Empty
    Personnellement, je me passerais même de LigneActive pour travailler avec Cellule.Row

    Puis, dans ta boucle, modifier Cellule, par exemple en pointant vers la cellule située juste en dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set cellule = cellule(2)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut
    Voila les modification comme tu me disais, c'est bien ç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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Dim Cellule As Range
    Set Cellule = .Range("AM5")
    While ActiveCell.Value <> Empty
    LigneActive = 5
    If .Range("AM" & LigneActive).Value <> Empty And .Range("AL" & LigneActive).Value <> Empty Then
    DerniereLigne = .Range("A65536").End(xlUp).Offset(1, 0).Row
    .Range("L" & DerniereLigne).Value = .Range("AL" & LigneActive).Value
    .Range("M" & DerniereLigne).Value = .Range("AM" & LigneActive).Value
    .Range("N" & DerniereLigne).Value = .Range("AN" & LigneActive).Value
    Else
    If .Range("AM" & LigneActive).Value <> Empty And .Range("AL" & LigneActive).Value = Empty And .Range("AL" & LigneActive - 1).Value <> Empty Then
    DerniereLigne = .Range("A65536").End(xlUp).Offset(1, 0).Row
    .Range("L" & DerniereLigne).Value = .Range("AL" & LigneActive - 1).Value
    .Range("M" & DerniereLigne).Value = .Range("AM" & LigneActive).Value
    .Range("N" & DerniereLigne).Value = .Range("AN" & LigneActive).Value
    Else
    If .Range("AM" & LigneActive).Value <> Empty And .Range("AL" & LigneActive).Value = Empty And .Range("AL" & LigneActive - 1).Value = Empty And .Range("AL" & LigneActive - 2).Value <> Empty Then
    DerniereLigne = .Range("A65536").End(xlUp).Offset(1, 0).Row
    .Range("L" & DerniereLigne).Value = .Range("AL" & LigneActive - 2).Value
    .Range("M" & DerniereLigne).Value = .Range("AM" & LigneActive).Value
    .Range("N" & DerniereLigne).Value = .Range("AN" & LigneActive).Value
    Else
    If .Range("AM" & LigneActive).Value <> Empty And .Range("AL" & LigneActive).Value = Empty And .Range("AL" & LigneActive - 1).Value = Empty And .Range("AL" & LigneActive - 2).Value = Empty And .Range("AL" & LigneActive - 3).Value <> Empty Then
    DerniereLigne = .Range("A65536").End(xlUp).Offset(1, 0).Row
    .Range("L" & DerniereLigne).Value = .Range("AL" & LigneActive - 3).Value
    .Range("M" & DerniereLigne).Value = .Range("AM" & LigneActive).Value
    .Range("N" & DerniereLigne).Value = .Range("AN" & LigneActive).Value
    Else
    If .Range("AM" & LigneActive).Value <> Empty And .Range("AL" & LigneActive).Value = Empty And .Range("AL" & LigneActive - 1).Value = Empty And .Range("AL" & LigneActive - 2).Value = Empty And .Range("AL" & LigneActive - 3).Value = Empty And .Range("AL" & LigneActive - 4).Value <> Empty Then
    DerniereLigne = .Range("A65536").End(xlUp).Offset(1, 0).Row
    .Range("L" & DerniereLigne).Value = .Range("AL" & LigneActive - 4).Value
    .Range("M" & DerniereLigne).Value = .Range("AM" & LigneActive).Value
    .Range("N" & DerniereLigne).Value = .Range("AN" & LigneActive).Value
    End If
    End If
    End If
    End If
    End If
    Set Cellule = Cellule(2)
    Wend

Discussions similaires

  1. [LibreOffice][Tableur] Activer une cellule sans la selectionner
    Par lalias dans le forum OpenOffice & LibreOffice
    Réponses: 17
    Dernier message: 17/02/2015, 08h51
  2. Activer une cellule
    Par target111 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/04/2013, 02h47
  3. Activer une cellule
    Par pepinette2005 dans le forum Excel
    Réponses: 1
    Dernier message: 07/08/2011, 12h10
  4. clic sur une cellule active fonction recherche
    Par john63 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2007, 21h48
  5. [VBA-E]suppression lignes a partir d'une cellule active
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/02/2007, 15h01

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