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 :

Pointer sur une cellule fusionnée en Vba Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Pointer sur une cellule fusionnée en Vba Excel
    Bonjour,

    Voici mon problème et je vais essayer d'être le plus clair possible.

    Dans une feuille de calcul où je rentre des congés annuels, un formulaire nommé "FrmDate" s'ouvre. Dans celui-ci 2 zones de saisies, une Combo (CmbNom) alimenter par les cellules 6 à 50 de la colonne A, 1 TextBox (TxtDu et un bouton de validation "CmbOk".

    Dans la feuille de calculs, les cellules de la ligne 5 sont au format date "jj" (05)
    les cellules de la ligne 4 sont au format date "jjj" (ven).

    Dans le formulaire, l'agent choisi un nom dans la liste proposée, met la date dans TxtDu (format "00/00/0000").

    Après avoir cliqué sur "Ok", je souhaiterai que la plage de cellules correspondant à la ligne où se trouve le nom de l'agent et à la date inscrite puissent être pointées.

    Comment puis-je réaliser cela ? Quelqu'un a t'il fait quelque chose de similaire ?
    Merci par avance pour votre aide

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Si tu veux montrer à l'écran la ligne l d'une feuille, tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Thisworkbook.Worksheets("NomFeuille").Range("A:" & numLigne).Show
    Bonne journée,

    PGZ

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Je fais cette manip pour permettre de pointer très rapidement la cellule où il doit commencer à saisir les congés.
    Il faut qu'il y ait un rapport entre le nom choisi et la date. La feuille du classeur comprend 1 trimestre du 1er janvier au 31 mars.

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 397
    Par défaut
    Bonjour NEC14,
    a vrai dire j'ai lu ton post... mais rien compris....

    Si tu veux localiser une cellule sur base de critères, il y a .Vlookup ou .Hlookup ou .Find.

    Ensuite pour mettre le curseur dessus, il y a .select.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Par exemple :

    Je choisis dans le Combo "Dupont"
    Il prend des congés à partir du 12/02/2009
    Dans le Textbox je saisie 12/02/2009
    A partir de ça et lorsque je clique sur Ok, la cellule se trouvant à l'intersection de la date et du Nom est pointée.

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 397
    Par défaut
    RE,
    jusque là j'avais bien compris.

    mais quid du format de tes données et de leur disposition dans ta(tes) feuille(s).

    Il me serait confortable que tu sois plus explicite que
    A partir de ça et lorsque je clique sur Ok, la cellule se trouvant à l'intersection de la date et du Nom est pointée.

  7. #7
    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
    Je crois que j'ai tout bien compris :
    En fait ton problème est de retrouver la ligne de ton bonhomme à la date saisie.
    Pour ça, utilise une recherche du nom avec Find sur la colonne des noms et tu vérifies la date
    Si elle bonne, la ligne est "celle-là"
    Sinon, la recherche se poursuit
    Pour la syntaxe, c'est celle décrite dans l'aide en ligne, à find, à laquelle tu ajoutes la vérification de la date (la colonne du nom Offset(0, ???)
    Si tu as un pb avec ça, pour t'aider, il nous faut la colonne du nom et celle de la date.
    Epicétou !
    A+

  8. #8
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Je ne vois pas comment je peux être plus clair que mon premier post.
    Il faut que la cellule se trouvant à l'intersection des données saisies est le focus, je ne sais pas comment dire, qu'elle soit sélectionnée, qu'elle soit pointée.
    Si personne ne comprends ce que je veux faire, je me débrouillerai autrement.
    Merci tout de même

  9. #9
    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
    Hello Nec, t'énerve pas, si on n'a pas compris, c'est peut-être qu'on est idiot mais surtout ça veut dire qu'on n'a pas compris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(LaCellule).select
    Où "LaCellule" est l'adresse de la cellule en question.
    C'est ça qui te manque ?

  10. #10
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 397
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Hello Nec, t'énerve pas, si on n'a pas compris, c'est peut-être qu'on est idiot mais surtout ça veut dire qu'on n'a pas compris
    ben oui, kwa... c'est mercredi.... faut comprendre...

    Trève de stupidité, je demandais juste à ce que tu expliques la disposition de tes données dans ton tableau, pas de traduire dans mon belge natal ta demande de mise du focus sur la cellule recherchée.

    Mais Ousk à tout dit à mon avis. Peut-être que tu peut te contenter de V ou HLookup, mais pas possible à dire sans voir.... et non.

    Salut Ousk.....

  11. #11
    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
    A la relecture de
    je souhaiterai que la plage de cellules correspondant à la ligne où se trouve le nom de l'agent et à la date inscrite puissent être pointées.
    ... ce qui est difficile à comprendre est que tes dates sont, selon deux formats...
    Dans la feuille de calculs, les cellules de la ligne 5 sont au format date "jj" (05)
    les cellules de la ligne 4 sont au format date "jjj" (ven)
    Mais je pense que tu as également le mois et l'année, non ? Sinon comment comparer les dates ? Et dans quelle colonne ?
    Et le nom ? Où qu'il est ? En lignes ? En colonnes ? Pour chaque nom une colonne ? Ou pour chaque ligne un nom ? Deux lignes pour la date ? Donc deux lignes par nom ?
    A te relire je m'aperçois que je n'ai rien compris et ça me rend tout triste. Si si !

  12. #12
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    voici une partie de la feuille

    Dans l'UserForm j'ai saisi "MARIE Hervé"
    Dans le TextBox "19/01/2009"

    Résultat cellule en rouge (elle ne sera pas colorée en vraie, c'est juste pour l'exemple)

    Loin de moi l'idée de penser que vous êtes idiot, dans le cas contraire je ne serai pas sur ce site à chercher votre aide. Je n'arrive pas à me faire comprendre c'est tout, l'idiot là dedans c'est moi.

  13. #13
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 397
    Par défaut
    Re,
    ok pour les noms en ligne mais ton tableau, il comprends 1 mois ou plus (une année.... 2... 10). ?

    Ta solution c'est de toute façon .FIND pour trouver ou pointer.
    Sinon pour récupérer le contenu de ta cellule à pointer, tu peux te contenter de Vlookup.

  14. #14
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Le fichier comprend 4 feuilles de 3 mois chacune. Le fichier "Cong09" n'est valable que pour l'année en cours. Il y a dans le fichier une option qui permet de changer d'année et dans ce cas efface toutes les données pour mettre à blanc les feuilles (l'ancien étant sauvegardé bien entendu)
    Donc les dates entrées dans la textbox ne doit être valable que pour la feuille active.

    T1 - Janvier à Mars
    T2 - Avril à Juin
    T3 - Juillet à Septembre
    T4 - Octobre à Décembre

  15. #15
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Est-ce que ce code pourrait fonctionner ? je n'ose pas essayer sans votre avis de peur de planter mon appli

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    '1ère étape : rechercher la ligne
    Dim L As Integer
    L = Cells.Find(what:=Range(CmbNom.Value), LookIn:=xlFormulas, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False).Row
     
    '2ème étape : recherche la colonne
    Dim C As Integer
    C = Cells.Find(what:=Range(TxtDu.Value), LookIn:=xlFormulas, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, searchformat:=False).Column
     
    '3éme étape : Sélectionner la cellule
    Cells.Select = Range(Cells(L, C), Cells(L, C)).Value

  16. #16
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    Désolé de revenir à la charge, mais je ne comprends absolument pas comment fonctionne Find.
    Comment rechercher une cellule à partir d'une Combo et d'un TextBox ?
    J'ai essayé des codes trouvés sur la toile, mais je me plante lamentablement.
    Je vais laisser tomber, les utilisateurs se serviront de la souris pour pointer la cellule, je ne vais pas passer mon temps là dessus.
    Mais bon, je vais chercher encore un peu.
    Le code que j'ai mis précédemment ne fonctionne absolument pas

  17. #17
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 397
    Par défaut
    Je te réponds plus tard...

    pas possible pour l'instant....

    Edit------------

    Voilà.

    D'abord
    1) dans l'aide de FIND pour VBA, voici l'exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Example
    This example finds all cells in the range A1:A500 on worksheet one that contain the value 2 and changes it to 5.
     
    With Worksheets(1).Range("a1:a500")
        Set c = .Find(2, lookin:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Value = 5
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
    Remarque qu'il fonctionne avec un range. Je ne vois pas cela dans ton code.

    2) Voic1, très vite car pas de temps comment je ferais (pas testé tu t'en doutes)


    A) Tu extrais le mois et le jour de la date sélectionnée. Le mois peut te donner la feuille (1->3 : Feuille 1, etc....). Le jour et le mois te donne la colonne de 1 à 90 (ou 91 année bissexctile. je te laisse gérer l'année bissexctile tout seul). Attention si colonne 1 contient les noms.

    Resultat trouvé : Feuille_du_mois , Colonne_du_jour

    B) Tu utilise .FIND avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With Worksheets(feuille_du_mois).Range("a1:axxx")
        Set c = .Find(cnom.value, lookin:=xlValues)
        If Not c Is Nothing Then
            ligne = c.row
        End If
    End With
    C) colonne = colonne_du_jour

    Finito.


    NB : avec VLOOKUP tu peux retrouver le contenu de la cellule très vite et l'afficher, mais pas te positionner dessus.

  18. #18
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Merci pour le temps que tu m'accordes, je vais essayer de faire quelque chose avec ça.
    Si je n'y arrive pas, je laisse tomber
    Encore un grand merci

  19. #19
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 397
    Par défaut
    . Quand tu as testé, pense à mon donner ton avis sur le code CutePdf.

  20. #20
    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
    Juste un détail : Déclare c as range, c'est plus mieux

    (Hello Godzestla)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/01/2012, 13h42
  2. Pointer sur une cellule et non son contenu
    Par MiXinG dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/04/2009, 12h04
  3. [VBA-Excel] DblClick sur une cellule
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/01/2007, 10h51
  4. [VBA-Excel]Supprimer une colonne entiere basee sur une cellule
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/10/2006, 22h08
  5. [Vba-Excel] Récupérer événement sur une cellule
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2006, 20h27

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