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 :

Afficher la ligne et la colonne correspondant à deux variables


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    re
    robert regarde bien mon exemple
    c'est pour ca que je ne lui ai pas proposer ca

    en fait il y a 3 inconnus car son sheets il y a tout les mois dans des cellules fusionnées
    qu' ll doit pouvoir identifier puis en récupérer l'adresse (area complète
    puis récupérer le row ou se trouve les jours pour en récupérer tout les colonnes en changeant le row du meragearea du mois
    puis la ensuite récupérer le row de l'ambulancier

    voila ce qui arrive quand on fusionne
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #22
    Invité
    Invité(e)
    Par défaut
    les cellules fusionnées ne posent pas de problème dès l’instant ou on à compris que la fusion est toujours en haut à gauche du bloc fusionnée!

    Tu réajustes à l'offset qui est pareil en lignes et en colonnes que la fusion!

    cells(dicoDate("01/01/2017") ,dicoAgents("Tous ceux qui le veulent")).Offset(1,1)Si il format ces cellules pour afficher de dates jj pour les jours mmmm pour les mois alors chaque jour est une date comme dans mon exemple et il ne ce souci pas du mois!
    Dernière modification par Invité ; 17/10/2017 à 19h06.

  3. #23
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    ces cellules ne sont bpas formatées se sont bien des nombres de 01 a 31
    et il y en a donc 12 de chaque sur la même ligne
    le seul répare que tu a a dispo c'est la cellule fusionnée de chaque mois pour cerner quel jour 15 par exemple va avec quel mois
    ou compter la n eme cellule avec 15 par exemple pour en connaitre le mois la 3 eme c'est mars la 4eme c'est avril etc........mais c'est moins sur vu le tableau qu'il a montrer en image je soupçonne des fusions a gogo
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #24
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    A dysorthographie et patricktoulon,

    Merci pour le temps que vous passez à m'aider.

    dysorthographie, je vais analysé ce que vous m'avez écrit.

    dans b2 jai la valeur 01/01/2017 au format jj
    dans C2 j'ai la formule =B2+1; D2=C2+1; etc...au format jj
    dans B1 =MOIS(B2) au format Mmmm
    dans initialisation du UserForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     For C = 2 To .Columns.Count
           dicoDate(.Cells(2, C).Value) = C
        Next
    dicoDate("01/01/2017") =2 c'est dans mon exemple la colonne 2


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For l = 3 To .Rows.Count
           dicoAgents(.Cells(l, 1).Value) = l
        Next
    dicoAgents("Tous ceux qui le veulent") =5 toujours dans mon exemple 
    cells(dicoDate("01/01/2017") ,dicoAgents("Tous ceux qui le veulent")) ces la cellule cells(5,2)
    Et essayé de l'adapter a ma situation.

    Un grand merci à vous

  5. #25
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par patricktoulon Voir le message

    ces cellules ne sont bpas formatées se sont bien des nombres de 01 a 31
    et il y en a donc 12 de chaque sur la même ligne
    le seul répare que tu a a dispo c'est la cellule fusionnée de chaque mois pour cerner quel jour 15 par exemple va avec quel mois
    ou compter la n eme cellule avec 15 par exemple pour en connaitre le mois la 3 eme c'est mars la 4eme c'est avril etc........mais c'est moins sur vu le tableau qu'il a montrer en image je soupçonne des fusions a gogo
    Effectivement j'ai fusionné plusieurs cellules.

    Voici une image qui pourra peut-être vous aider à comprendre ce que j'ai fait (erreur peut-être)


    Mes dates son en ligne 11.
    En ligne 12, ce sont des cellules fusionnées mais avec un format personnalisé en jj -> 01.
    En ligne 14, ce sont des cellules fusionnées mais avec un format personnalisé en jj -> 01. la valeur de AC12 est =AC11, AE12 = AC12+1, AG12 = AE12+1, etc...
    En ligne 16, ce son tdes cellules fusionnées mais avec un format personnalisé en jjj -> Lun. Même chose ici.
    En ligne 17 ,ce sont des cellules fusionnées mais avec un format personnalisé en jj ->01. Même chose ici.

    Les lignes Heures supp. sont fusionnées avec un format personnalisé en [hh]:mm. Serait-il mieux de ne pas les fusionner?

    Nom : Sans titre.jpg
Affichages : 286
Taille : 303,2 Ko

    Pensez-vous qu'il y a une possibilité de faire ce que je souhaite en état actuel de ma feuille 2018?

    Cordialement

  6. #26
    Invité
    Invité(e)
    Par défaut
    Si tu as la possibilité de joindre un fichier en bidonnant les datas on serait plus a laisse!

  7. #27
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Si tu as la possibilité de joindre un fichier en bidonnant les datas on serait plus a laisse!
    Qu'entendez vous de, en bidonnant les datas?

    Je peux sans autre vous joindre mon fichier.

    Merci

  8. #28
    Invité
    Invité(e)
    Par défaut
    En remplaçant les informations confidentielles part des valeurs bidons.

  9. #29
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Il n'y a rien de confidentiel,

    Je vous l'envoie en message privé dans un premier temps.

    Merci de votre aide

  10. #30
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Je ne peux pas l'envoyé via le forum car il y une limite de 2.0 Mo et le fichier en fait 3.5 Mo

  11. #31
    Invité
    Invité(e)

  12. #32
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Si vous avez des suggestions n'hésitez pas.

    Merci

  13. #33
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    bonsoir
    que veux tu que l'on te dise de plus
    si tu ne sais pas faire 2 find (ligne/colonne)on peut pas le faire a ta place

    c'est simple comme tout c'est le B a BA de vba excel tu a touT dans F1
    une derniere fois
    PRINCIPE
    1. find sur la row complète ou il y a les mois lettre
    2. récupération en string de sa "mergearea.address"
    3. remplacement du numero de ligne de cette addresse par celui de la ligne ou il y 01,02,03,04,05,etc...,31
    4. tu a maintenant ta plage contenant le numero de jour de la date dans le userform
    5. un find sur le numéro de jour dans cett plage et tu a ta colonne
    6. un find dans la colonne des ambulanciers
    7. et voila tu a ta ligne et colonne pour ton ambulancier tel jour tel mois

    et basta
    si tu n'a aucune idée du comment faire maintenant laisse tomber reprends les bases
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #34
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    https://mon-partage.fr/f/w94W8dgL/

    Code UserForm_Initialize : 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
    Private Sub UserForm_Initialize()
    Dim C As Integer, L As Integer
        New_HS.Bouton_Reset = True
        Me.Label_Nom.Caption = ""
        ChoixAmbu.List = Worksheets("Listes").Range("B9:B44").Value
     Set dicoDate = CreateObject("Scripting.Dictionary")
    Set dicoAgents = CreateObject("Scripting.Dictionary")
    With ThisWorkbook.Sheets("2018").UsedRange
        For C = 0 To 364
       Debug.Print .Cells(12, 29).Offset(0, C).Value
         If CStr("" & (.Cells(12, 29).Offset(0, C).Value)) <> "" Then dicoDate(.Cells(12, 29).Offset(0, C).Value) = .Cells(12, 29).Offset(0, C).Column
        Next
         For L = 25 To .Rows.Count
         Debug.Print .Cells(L, 27).Value
          If CStr("" & .Cells(L, 27).Value) <> "" Then dicoAgents(.Cells(L, 27).Value) = L
        Next
     
    End With
    End Sub
    Code Bouton_Valider_Click : 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
    Private Sub Bouton_Valider_Click()
    Dim DateRecherchee As Date
    Dim NomRecherche As String
    Dim Nomfichier As String
     
     
    Dim NomAmbulancier As Integer
    Dim Colonnedujour As Integer
     
     
    Dim CopieCalcul As String
     
     
    'On Error Resume Next
     
     
    DateRecherchee = Me.MaDate
    NomRecherche = Me.ChoixAmbu.Value
    Nomfichier = ThisWorkbook.Name
    Nomfichier = Left(Nomfichier, Len(Nomfichier) - 5)
    CopieCalcul = Me.ResultatHS.Caption
     
     
    Application.ScreenUpdating = False
     
     
     
     
    UnprotectSheet
     
     
    NomAmbulancier = dicoAgents(NomRecherche)
    Colonnedujour = dicoDate(DateRecherchee)
     
     
    MsgBox ("Nom en ligne " & NomAmbulancier & " / Date en colonne " & Colonnedujour _
            & vbCrLf & vbCrLf & _
            "La valeur copié sera " & CopieCalcul & ".")
     
     
     
     
    Cells(NomAmbulancier, Colonnedujour).Select
     
     
    ProtectSheet
     
     
    End Sub
    Dernière modification par Invité ; 19/10/2017 à 12h25.

  15. #35
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    bonsoir
    que veux tu que l'on te dise de plus
    si tu ne sais pas faire 2 find (ligne/colonne)on peut pas le faire a ta place

    c'est simple comme tout c'est le B a BA de vba excel tu a touT dans F1
    une derniere fois
    PRINCIPE
    1. find sur la row complète ou il y a les mois lettre
    2. récupération en string de sa "mergearea.address"
    3. remplacement du numero de ligne de cette addresse par celui de la ligne ou il y 01,02,03,04,05,etc...,31
    4. tu a maintenant ta plage contenant le numero de jour de la date dans le userform
    5. un find sur le numéro de jour dans cett plage et tu a ta colonne
    6. un find dans la colonne des ambulanciers
    7. et voila tu a ta ligne et colonne pour ton ambulancier tel jour tel mois

    et basta
    si tu n'a aucune idée du comment faire maintenant laisse tomber reprends les bases
    Merci patricktoulon,

    J'ai réussi à faire ce que je voulais en m'inspirant de votre fichier. J'ai pris le temps de le comprendre afin de l'adapter à mon projet

    Mon erreur était que je m'obstinais à vouloir utiliser la ligne 11 comportant les date en jj.mm.aaaa (01.01.2018).

    Je vous remercie pour votre aide et le temps que vous avez passer pour moi.

    Meilleures salutations

  16. #36
    Nouveau membre du Club
    Inscrit en
    Septembre 2003
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 70
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonjour,

    https://mon-partage.fr/f/w94W8dgL/

    Code UserForm_Initialize : 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
    Private Sub UserForm_Initialize()
    Dim C As Integer, L As Integer
        New_HS.Bouton_Reset = True
        Me.Label_Nom.Caption = ""
        ChoixAmbu.List = Worksheets("Listes").Range("B9:B44").Value
     Set dicoDate = CreateObject("Scripting.Dictionary")
    Set dicoAgents = CreateObject("Scripting.Dictionary")
    With ThisWorkbook.Sheets("2018").UsedRange
        For C = 0 To 364
       Debug.Print .Cells(12, 29).Offset(0, C).Value
         If CStr("" & (.Cells(12, 29).Offset(0, C).Value)) <> "" Then dicoDate(.Cells(12, 29).Offset(0, C).Value) = .Cells(12, 29).Offset(0, C).Column
        Next
         For L = 25 To .Rows.Count
         Debug.Print .Cells(L, 27).Value
          If CStr("" & .Cells(L, 27).Value) <> "" Then dicoAgents(.Cells(L, 27).Value) = L
        Next
     
    End With
    End Sub
    Code Bouton_Valider_Click : 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
    Private Sub Bouton_Valider_Click()
    Dim DateRecherchee As Date
    Dim NomRecherche As String
    Dim Nomfichier As String
     
     
    Dim NomAmbulancier As Integer
    Dim Colonnedujour As Integer
     
     
    Dim CopieCalcul As String
     
     
    'On Error Resume Next
     
     
    DateRecherchee = Me.MaDate
    NomRecherche = Me.ChoixAmbu.Value
    Nomfichier = ThisWorkbook.Name
    Nomfichier = Left(Nomfichier, Len(Nomfichier) - 5)
    CopieCalcul = Me.ResultatHS.Caption
     
     
    Application.ScreenUpdating = False
     
     
     
     
    UnprotectSheet
     
     
    NomAmbulancier = dicoAgents(NomRecherche)
    Colonnedujour = dicoDate(DateRecherchee)
     
     
    MsgBox ("Nom en ligne " & NomAmbulancier & " / Date en colonne " & Colonnedujour _
            & vbCrLf & vbCrLf & _
            "La valeur copié sera " & CopieCalcul & ".")
     
     
     
     
    Cells(NomAmbulancier, Colonnedujour).Select
     
     
    ProtectSheet
     
     
    End Sub
    Merci dysorthographie,

    Je viens de voir voir fichier et je vais prendre le temps de le comprendre.

    J'ai réussi à faire ce que je voulais en adaptant ce que patricktoulon m'avais proposé.

    Votre calendrier pourrai m'être utile.

    Merci à vous deux.

    Meilleures salutations

  17. #37
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 435
    Points
    1 435
    Par défaut
    bonjour,
    Lorsque j'insère la date cela sélection la bonne case selon la date. (Cela fonctionne avec le code ci-dessous)
    donc au niveau colonne c'est OK
    Je désire maintenant que lorsque l'employé sélectionne son nom dans la ComboBox, cela sélectionne une ligne sous son nom. Ici ça ne fonctionne pas et me met une erreur d’exécution 91 :-(
    on est bien à la recherche d'une ligne ?

    ligne 49 : "Ambulancier 1"
    ligne 53 : "Ambulancier 2"

    ligne "Ambulancier n3 = 53-49 --> 4 --> 49 + (4* n° Ambulancier) --> ligne 61 : "Ambulancier 3"

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2013, 20h17
  2. Réponses: 3
    Dernier message: 13/11/2010, 00h14
  3. [VB.net 2005] Définir une valeur nulle dans ma comboBox
    Par WriteLN dans le forum Framework .NET
    Réponses: 4
    Dernier message: 04/04/2008, 18h11
  4. Comment afficher une valeur contenue dans une variable ?
    Par manubrard dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 16h56
  5. Ne pas afficher une ligne selon une valeur
    Par uloaccess dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 15h04

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