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

VBA Access Discussion :

ajouter un commentaire sur une cellule précise mais variable d'un fichier Excel à partir d'Access [AC-365]


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut ajouter un commentaire sur une cellule précise mais variable d'un fichier Excel à partir d'Access
    Bonjour, bien que la façon de procéder ne soit pas des plus conventionnelles, je suis obligé de travailler de cette manière car j'effectue un certain travail sur un fichier Access et dois modifier un fichier Excell d'un collègue.

    sur mon fichier Access à partir d'une liste déroulante, je peux choisir une immatriculation (pour l'exemple 1, 2 ou 3) via une liste déroulante.
    une fois l'immatriculation choisie j'inscris dans une case un petit texto qui via un bouton insère le texto en rapport à l'immatriculation dans une table de ma base, jusque là, cela va...lol

    Afin de m'éviter de devoir ouvrir le fichier Excell du collègue, de trouver dans son tableau la ligne correspondant à l'immatriculation et dans une colonne pour l'exemple la C y ajouter ce même texto en commentaire de la cellule en Cx (x correspondant à la ligne de l'immatriculation, j'aimerai que lorsque j'appuie sur mon bouton Access que cela se fasse automatiquement dans le fichier Excell.


    Pour insérer du commentaire j'ai bien range("C1"), comment.visible = false et range("A1"), comment;text:= "moi": & chr(10) & "blablabla"

    Mais comment d'après l'immatriculation choisie dans Access trouver la ligne de l'immatriculation du tableau Excell et prendre le range ("Cx") de cette même ligne correspondant à l'immatriculation et y ajouter mon texto (au commentaire peut être déjà existant).

    Espère avoir été assez clair dans l'énigme de la solution recherchée. Déjà est-ce possible d'effectuer cette opération


    merci de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 043
    Par défaut
    Etonnant que tu ne trouves pas la solution à ta question car tu y es presque ...
    comment d'après l'immatriculation choisie dans Access trouver la ligne de l'immatriculation du tableau Excell et prendre le range ("Cx")
    par exemple, tu peux coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    With myWkb.ActiveSheet
     
      .Range("F5").Comment.Visible = True  'ou False selon ton souhait
        .Range("F5").Comment.Text Text:="essai n° 1" & Chr(10) & "Il fait-il beau aujourd'hui ?"
        .Range("F5") = "essai n° 1"
     
    ' ou bien encore
     .Cells(5, 5).Comment.Visible = True
        .Cells(5, 5).Comment.Text Text:="essai n° 1" & Chr(10) & "Il fait-il beau aujourd'hui ?"
        .Cells(5, 5) = "essai n° 1"
     
    end with

  3. #3
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Ma difficulté est de partir d'Access

    la base de données à l'information de l'immatriculation et du mémo à ajouter.
    et sur un clic bouton de commande, il faut l'insérer au bon endroit dans un fichier Excell

    l'immatriculation venant d'Access n'a qu'une seule correspondance de ligne dans le fichier Excell, faut il encore trouver cette ligne et ajouter l'info dans la bonne colonne.
    Le fichier Excell est un tableau reprenant toutes les immatriculations possible sur des lignes et comporte des colonnes avec divers renseignements, j'aimerai que dans une colonne précise sur une ligne précise (immatriculation identique à celle renseignée dans Access) l'info s'y ajoute

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 043
    Par défaut
    Ce n'est vraiment pas difficile.
    Je suppose que tu sais ouvrir le fichier excel depuis Access, te placer dans la feuille qui a les immatriculations
    Alors tu repères la colonne des immatriculations
    et sur les cellules de cette colonne,tu fais une boucle pour trouver la cellule qui a la valeur de l'immatriculation recherchée. Ainsi tu auras les coordonnées (row, col) de cette cellule
    Ca me parait très basique. Sur le forum, tu trouveras quantité de codes pour t'aider.
    A toi de jouer

    cordialement

  5. #5
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Merci de cette proposition, un mot clé peut-être pour trouver ce genre de boucle sur une colonne et ensuite me donner accès à une écriture en mémo dans une case correspondant à la ligne...

  6. #6
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 961
    Par défaut
    bonsoir,
    pour faire une recherche sur une colonne il faut utiliser la méthode Find qui renvoie l'adresse de la cellule

  7. #7
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Merci de vos guidances, mais je suis complètement perdu dans la façon de manipuler un fichier Excell a partir d'Access.

    Ouvrir le fichier Excell pas de soucis pour le reste???

  8. #8
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 043
    Par défaut
    Ne pas oublier de consulter la FAQ Access
    http://access.developpez.com/faq/?page=Excel#PilotExcel
    ou encore
    http://access.developpez.com/faq/?pa...ifCellExcelDAO

    et plein d'autres ...

  9. #9
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Mis à part ouvrir mon document, je pense ne pas avoir assez de compétence pour codifier la recherche d'une immatriculation présente dans mon formulaire Access la retrouver dans mon tableau Excell, y sélectionner la colonne correspondant aux commentaire et en insérer un supplémentaire.

    Je comprend que beaucoup d'exemple se trouve un peu partout sur le forum, mais pour un débutant, il est pas facile de se rendre compte vers quelle direction trouver ses réponses.

    Merci de votre aide et compréhension.

  10. #10
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Merci de vos réponses. Mais je suis vraiment bloqué et trop néophyte que pour me débrouiller et m'y retrouver dans le forum.

    Dans mon code VBA Access, j'arrive bien sûr à ouvrir mon fichier Excell.

    Maintenant récupérer l'information de l'immatriculation du formulaire, la rechercher dans mon tableau Excell, extraire l'adresse de la cellule correspondant à la ligne de l'immatriculation pour une colonne donnée et ajouter le commentaire, je suis vraiment perdu.


    puis-je avoir une information plus précise pour chaque étape

    Merci

  11. #11
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Pouvez-vous m'aiguiller sur les codes pour:

    Récupérer l'information de l'immatriculation du formulaire Access pour la rechercher dans mon tableau Excell, extraire l'adresse d'une cellule correspondant à la ligne de l'immatriculation pour une colonne donnée et ajouter le commentaire à cette cellule dans Excell.

    Merci

  12. #12
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Je pense à une boucle while

    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
    Dim oApp As Excel.Application
        Dim oWkb As Excel.Workbook
        Dim oWSht As Excel.Worksheet
        Dim i As Integer
       ' Dim strMessage As String
       ' Dim sql As String
     
     
     
        Set oApp = CreateObject("excel.application")
     
        Set oWkb = oApp.Workbooks.Open("...\tableau.xlsx")
     
        Set oWSht = oWkb.Worksheets("suivis")
     
        i = 2
     
        While oWSht.Range("A" & i).Value = Me.imatri
      Wend
     
         oWkb.Close
        Set oWSht = Nothing
        Set oWkb = Nothing
        Set oApp = Nothing
    End Sub


    Le début devrais ressembler à ça?

  13. #13
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 043
    Par défaut
    Alors essaie

    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
    sub Test1()
    Dim oApp As Excel.Application
        Dim oWkb As Excel.Workbook, oWSht As Excel.Worksheet
        Dim i As Long
      
        Set oApp = CreateObject("excel.application")
        Set oWkb = oApp.Workbooks.Open("...\tableau.xlsx")
        Set oWSht = oWkb.Worksheets("suivis")
        i = 2
     ' ActiveSheet.UsedRange.Rows.Count : nb lignes utilisées dans une feuille
       do  while i <= oWSht.UsedRange.Rows.Count
    if  oWSht.Range("A" & i).Value = Me.immatricul
    ' on fait ici le traitement souhaité, par exemple, si la cellule à modifier est en colonne F
    oWSht.Cells(i, 6).Comment.Visible = True
        oWSht.Cells(i, 6).Comment.Text Text:="commentaire n° 1" & Chr(10) & "Il fait beau aujourd'hui"
        oWSht .Cells(i, 6) = "essai n° 1"
    
    exit do    ' on sort de la boucle
    else
    i = i+1
    end if
      
    loop
     
        Set oWSht = Nothing
         oWkb.Close
        Set oWkb = Nothing
        Set oApp = Nothing
    End Sub

  14. #14
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Bonsoir et un très grand merci pour l'aide.

    Supposant qu'il manquait le THEN à la fin du if, je l'ai ajouté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If oWSht.Range("A" & i).Value = Me.imatriculation Then
    Par contre j'ai eu une erreur référence incorrecte ou non qualifiée à la ligne du code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oWSht .Cells(i, 6) = "essai n° 1"
    mais j'ai enlever l'espace entre le .et Cells et plus d'erreur.

    Mais malheureusement rien de modifié dans mon fichier Excell

    n'aurais-je pas suivi quelque chose

    Merci encore

  15. #15
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Pardon Pardon, erreur de ma part, cela fonctionne super.

    Mon erreur pour la version test était d'avoir placé des chiffres en colonne A. si je place tu texte aucuns soucis.

    Juste petite demande supplémentaire.
    est-ce possible en faisant la même opération (en tenant compte que le commentaire à insérer viendrait du formulaire Access via une variable d'ajouter au commentaire déjà existant dans la case le nouveau commentaire.

    Un super merci en tout les cas.

  16. #16
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 043
    Par défaut
    si je comprends bien,
    pour modifier le commentaire existant en y ajoutant une valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oWSht.Cells(i, 6).Comment.Text Text:= oWSht.Cells(i, 6).Comment.Text & "valeur ajoutée"
    salut

  17. #17
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    Magnifique

    Un tout grand merci pour l'aide.

    Il me reste à trouver comment aller à la ligne avant d'insérer le commentaire supplémentaire.

    Très beau WE à vous

  18. #18
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    J'ai trouvé

    en ajoutant vbLf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oWSht.Cells(i, 6).Comment.Text Text:=oWSht.Cells(i, 6).Comment.Text & vbLf & "valeur ajoutée"
    Encore chapeau et un tout grand merci

  19. #19
    Membre confirmé
    Homme Profil pro
    Logisitique
    Inscrit en
    Janvier 2018
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Logisitique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 192
    Par défaut
    A lla lecture de ce code, une erreur sauterait elle aux yeux?

    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
    Private Sub insertcomment_Click()
    Dim oApp As Excel.Application
        Dim oWkb As Excel.Workbook
        Dim oWSht As Excel.Worksheet
        Dim i As Long
        Dim coment As String
        Dim dat As String
       Dim commentaire_prec As String
     
        coment = Me.coment.Value
        dat = Format(Me.Datecomment, "dd.mm.yyyy")
     
        Set oApp = CreateObject("excel.application")
        Set oWkb = oApp.Workbooks.Open("D:\test.xlsm")
        Set oWSht = oWkb.Worksheets("suivi")
        i = 2
     ' ActiveSheet.UsedRange.Rows.Count : nb lignes utilisées dans une feuille
    Do While i <= oWSht.UsedRange.Rows.Count
     
    If oWSht.Range("A" & i).Value = Me.NIMMA Then
     
     
    ' on fait ici le traitement souhaité, par exemple sur la cellule à modifier (1 pour A, 2 pour B...)
     
    oWSht.Cells(i, 6).comment.Visible = True
    oWSht.Cells(i, 6).comment.Text Text:=oWSht.Cells(i, 6).comment.Text & vbLf & dat & coment
     
        'oWSht.Cells(i, 6) = "essai n° 1"  'si il faut remplir la celulle du commentaire
     
    Exit Do    ' on sort de la boucle
    Else
    i = i + 1
    End If
     
    Loop
        Set oWSht = Nothing
         oWkb.Close
        Set oWkb = Nothing
        Set oApp = Nothing
    End Sub
    Petite question, si la case ne comporte déjà pas un code, faut il ajouter une ligne style if si déjà pas de code alors?

    Merci, car à l'utilisation de ce code j'ai une erreur qui je pense m'enferme dans la boucle...

  20. #20
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 043
    Par défaut
    Il faut commencer à chercher des petites solutions par toi-même

    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    oWSht.Cells(i, 6).comment.Visible = True
    if len(nz(oWSht.Cells(i, 6).comment.Text)) > 0 then
    ' le commentaire de la case comporte déjà une valeur
    oWSht.Cells(i, 6).comment.Text Text:=oWSht.Cells(i, 6).comment.Text & vbLf & dat & coment
    else
    oWSht.Cells(i, 6).comment.Text Text:=oWSht.Cells(i, 6).comment.Text
    end if
    ...

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

Discussions similaires

  1. Ajouté les commentaire dans une cellule fixe
    Par nico156 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2019, 08h50
  2. [phpMyAdmin] Ajouter des commentaires sur une table
    Par huit_six dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/05/2010, 11h35
  3. cliquer sur une cellule qui m'ouvre un autre fichier excel
    Par booskap dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/08/2007, 11h08
  4. Ajouter un commentaire sur une colonne
    Par brice44 dans le forum Requêtes
    Réponses: 8
    Dernier message: 09/07/2007, 15h33
  5. Tester que la touche entrée a été préssee sur une cellule précise
    Par azerty53 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 08h25

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