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 :

Problème de transfert de données


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 Problème de transfert de données
    Bonjour,

    Dans une feuille de calcul il y a un tableau qui commence à la colonne "P".
    Le code ci-dessous me permet de transférer des données d'un UF vers ce tableau.
    Je n'arrive pas à faire que les données entrent dans le tableau à partir de la 12ème ligne de la colonne P.

    Où ai-je commis une erreur ?
    Merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    'On rapatrie les données de UFvir dans la feuille "L" et Numéro de ligne en commençant par la 12ème ligne et la colonne P
     
    With shtFich
        LastLigF = .Range("P5").End(xlDown).Row + 1
        .Range("P" & LastLigF).Value = LastLigF - 12
        .Range("P" & LastLigF).Value = Me.CmbNum1.Value
        .Range("Q" & LastLigF).Value = Me.CmbNum2.Value
        .Range("R" & LastLigF).Value = Me.TxtMontant.Value
        .Range("T" & LastLigF).Value = Me.TxtDate.Value
        .Range("T" & LastLigF).Value = Format(Me.TxtDate, "mm-dd-yyyy")
    End With

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    à quoi peut bien servir la ligne n°6 ?‼


  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    à quoi peut bien servir la ligne n°6 ?‼
    et la ligne 10 ?
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour a vous
    en essayant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim lig As Integer
    With shtFich
        lig = .Range("P65536").End(xlUp)(2).Row
        If lig < 12 Then lig = 12
     
      'insertion d'une ligne
      .Rows(lig + 1).Insert
    .Range("P" & LastLigF).Value = Me.CmbNum1.Value
    etc...
    Pascal

  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
    Citation Envoyé par casefayere Voir le message
    Bonjour,


    et la ligne 10 ?
    Bonjour,

    Avec la ligne 6 j'essaie de dire que la saisie doit commencer en 12ème ligne. Avec la ligne 10, je dis que les données se trouvant dans l'UF sont transférée dans la colonne T.

    Sinon j'ai essayé le code proposé, mais cela ne fonctionne toujours pas.

    Merci pour votre aide

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    ben s'il y a la ligne n°10, à quoi bon la ligne n°11 alors ?‼ Donc à regrouper en une seule ligne …

    Sinon la ligne n°6 est incongrue, à supprimer donc et corriger la ligne n°5 (comme grisan29 l'a pourtant bien pressentie …) ainsi :

    LastLigF = Application.Max(.Range("P5").End(xlDown).Row + 1, 12)


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


    __________________________________________________________________________________________
    Quand on est mort, on ne sait pas qu'on est mort, c'est pour les autres que c'est difficile … Quand on est con, c'est pareil ‼

  7. #7
    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 Marc-L.

    J'ai bien modifié le code selon ta proposition (sauf la ligne 10). Cependant je rencontre un autre problème.
    Lorsque je fais une 2ème saisie, la première est effacée. Les données saisies doivent aller les unes en dessous des autres.
    Merci pour l'aide qui me sera apportée.

    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
     
    With shtFich
        LastLigF = Application.Max(.Range("P5").End(xlDown).Row + 1, 12)
        .Range("P" & LastLigF).Value = Me.CmbNum1.Value
        .Range("Q" & LastLigF).Value = Me.CmbNum2.Value
        .Range("R" & LastLigF).Value = Me.TxtMontant.Value
        .Range("T" & LastLigF).Value = Me.TxtDate.Value
        .Range("T" & LastLigF).Value = Format(Me.TxtDate, "mm-dd-yyyy")
    End With
     
    With shtFich2
        LastLigF = Application.Max(.Range("P5").End(xlDown).Row + 1, 12)
        .Range("Q" & LastLigF).Value = Me.CmbNum2.Value
        .Range("P" & LastLigF).Value = Me.CmbNum1.Value
        .Range("S" & LastLigF).Value = Me.TxtMontant.Value
        .Range("T" & LastLigF).Value = Me.TxtDate.Value
        .Range("T" & LastLigF).Value = Format(Me.TxtDate, "mm-dd-yyyy")

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    LastLigF = Application.Max(.Cells(.Rows.Count, 16).End(xlUp)(2).Row, 12) …


    Sinon pas assez d'élément, faudra suivre en mode pas à pas pour que vous compreniez ce qu'il se passe …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …


    __________________________________________________________________________________________
    L'expérience, c'est une connerie par jour, mais jamais la même …

  9. #9
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Je ne suis pas sûr d'avoir bien saisi ?
    Si tu veux entrer les valeurs des contrôles de ta Form dans la feuille et les saisies les unes à la suite des autres, il te faut chercher à chaque fois la dernière ligne non vide et décaler vers le bas. Tu parle de colonne "P" et tu fais référence à la colonne "L" >12< ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LastLigF = Application.Max(.Range("P5").End(xlDown).Row + 1, 12)
    Adapte et teste ce qui suit :
    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
     
    Dim shtFich As Worksheet
    Dim Cel As Range
     
    Set shtFich = ActiveSheet
     
    With shtFich
     
        Set Cel = .Cells(.Rows.Count, 16).End(xlUp).Offset(1, 0)
     
    End With
     
    Cel.Value = Me.CmbNum1.Value
    Cel.Offset(, 1).Value = Me.CmbNum2.Value
    Cel.Offset(, 2).Value = Me.TxtMontant.Value
    Cel.Offset(, 4).Value = Format(Me.TxtDate, "mm-dd-yyyy")
    Hervé.

  10. #10
    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
    Voilà ce que j'ai fait. Les données se mettent bien les unes en-dessous des autres au fur et à mesure de la saisie, sauf que la saisie commence en ligne 28 et pas en 12.

    Que n'ai-je pas fait correctement ??

    Merci par avance

    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
     
    With shtFich
        Set Cel = .Cells(.Rows.Count, 16).End(xlUp).Offset(1, 0)
        Cel.Value = Me.CmbNum1.Value
        Cel.Offset(, 1).Value = Me.CmbNum2.Value
        Cel.Offset(, 2).Value = Me.TxtMontant.Value
        Cel.Offset(, 4).Value = Me.TxtDate.Value
        Cel.Offset(, 4).Value = Format(Me.TxtDate, "mm-dd-yyyy")
    End With
     
    With shtFich2
        Set Cel = .Cells(.Rows.Count, 16).End(xlUp).Offset(1, 0)
        Cel.Value = Me.CmbNum1.Value
        Cel.Offset(, 1).Value = Me.CmbNum2.Value
        Cel.Offset(, 3).Value = Me.TxtMontant.Value
        Cel.Offset(, 4).Value = Me.TxtDate.Value
        Cel.Offset(, 4).Value = Format(Me.TxtDate, "mm-dd-yyyy")
    End With

  11. #11
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Re,

    Donc, ceci signifie que tu veux que tes données soient insérées entre deux blocs de valeurs.
    Pour rechercher depuis la ligne 5 en colonne P et vers le bas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With shtFich
     
        Set Cel = .Cells(5, 16).End(xlDown).Offset(1, 0)
     
    End With
    Hervé.

  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
    La saisie commence en ligne 11 alors qu'elle devrait être en ligne 12, sinon le reste fonctionne bien.

    Merci pour ton aide

  13. #13
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Alors, remplace par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With shtFich
     
        Set Cel = .Cells(10, 16).End(xlDown).Offset(1, 0)
     
    End With
    Hervé.

  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
    Merci beaucoup Theze, ça fonctionne super.

    Merci à tous ceux qui m'ont apporté leur aide.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/02/2010, 16h03
  2. ODI - Problème de transfert de données numériques
    Par vmuhlematter dans le forum ODI (ex-Sunopsis)
    Réponses: 1
    Dernier message: 14/09/2009, 13h52
  3. Problème de transfert de données
    Par Rosa01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/04/2008, 09h44
  4. [débutant] serveur-client : problème de transfert de données
    Par Mag007 dans le forum Développement
    Réponses: 2
    Dernier message: 19/04/2007, 22h05
  5. [Designer] Problème de transfert de données entre modul
    Par BILLYPATOU dans le forum Designer
    Réponses: 11
    Dernier message: 09/03/2004, 18h15

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