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

Excel Discussion :

Sur base d'une valeur à "oui" créer une nouvelle ligne dans une autre feuille et y copier des données


Sujet :

Excel

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    ci-joint fichier amélioré mais il y a encore du boulot.

  2. #22
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    J'ai testé le fichier, original le système pour créer une référence unique :-)

    Quand je vide le tableau et met toute les cases à non tout s'efface dans la liste des produits même l'entente je ne comprend pas pourquoi...

    J'ai eu aussi comme blague la liste des produits ne se met pas à jour. Puis j'ai recommencé la même opération et cela fonctionne ... Donc mystère lol

    Quand tu dis qu'il y a encore du boulot, tu peux m'expliquer ?

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour le forum, Greg,
    tout s'efface dans la liste des produits même l'entente je ne comprend pas pourquoi...
    ça fait partie des problèmes, en effet tu m'as demandé que si la saisie passe de oui à non, la ligne soit effacée dans la "liste des produits par client" par contre qu'entends-tu par "même l'entente", si ton fichier a la même structure que le dernier que je t'ai envoyé, il faut que tu m'expliques.
    Je pense qu'on avance mais on est loin d'avoir fini car tu voulais ne mettre le nom et adresse qu'une seule fois, ce qui va poser des difficultés pour ton publipostage, vu l'organisation de ton fichier, j'imagine que si tu envoies la fiche à chaque client, celui qui aura 2 produits aura 2 courriers, à me préciser également.

    Bonne journée

  4. #24
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par casefayere
    par contre qu'entends-tu par "même l'entente"
    Je n'ai rien changé au fichier de base. J'ai travaillé sur celui que tu m'as envoyé. J'ai juste placé à "non" tout les produits.

    Après avoir fait cela, la ligne avec les titres des colonnes s'est effacée.

    Ce n'est pas bien grave car logiquement le fichier ne devrait jamais être vide.

    Citation Envoyé par casefayere
    Je pense qu'on avance mais on est loin d'avoir fini car tu voulais ne mettre le nom et adresse qu'une seule fois, ce qui va poser des difficultés pour ton publipostage, vu l'organisation de ton fichier, j'imagine que si tu envoies la fiche à chaque client, celui qui aura 2 produits aura 2 courriers, à me préciser également.
    Oui on avance bien :-) Et c'est grâce à toi...

    Publipostage

    Oui, j'aimerais que le nom du client ne soit noté qu'une fois. Et lors du publipostage tout les produits soit écrit sur une même page.

    Expliqué d'une autre manière :

    Si monsieur Dupont à 3 produits (Produit 2, Porduit 5, Produit 6), je voudrais que figure sur le publipostage (Une seule lettre) :

    Le nom, prénom, adresse du client (1 Fois)
    Le détail du produit 2,
    Le détail du produit 5,
    Le détail du produit 6,

    Voila, j'espère que c'est plus clair.

    Si c'est possible... Si non, je ferai une lettre par produit mais en dernier possibilité.

    Problème avec la copie de ligne :

    Concernant le petit problème cité précédemment comme quoi une ligne n'est pas toujours copiée. Je pense avoir compris pourquoi.

    Si j'encode les données du clients dans l'onglet "détail client" et que je passe les produits à oui directement la ligne n'est pas toujours copiée.

    Je me suis rendu compte que je devais encoder les données du client. Aller dans l'onglet "Détail produit", Retourner dans l'onglet "Détail client" avant de pouvoir mettre les produit à "oui".

    Expliquer différemment :

    Dans l'onglet "Détail client", je dois encoder tout mes clients.
    Je dois aller ensuite dans l'onglet "Détail produit".
    Retourner dans l'onglet "Détail client" et mettre les produits à "oui".
    A ce moment, quand je met un produit à "oui", le message de confirmation apparait pour copier la ligne.

    Question ?

    Veux tu que je te prépare les fichiers de base pour le publipostage pour que cela soit plus clair et sache les données qui doivent y figurer ?

    Un grand merci à toi,
    Bonne journée

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Re,
    avant de s'attaquer au publipostage, j'aimerais que tonfichier soit fonctionnel.

    Alors je ne comprends pas cette remarque :
    ...la ligne avec les titres des colonnes s'est effacée.
    j'ai ajouté une condition, je pense qu'un problème arrive dès que tu selectionnes plusieurs cellules en meme temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...If maj = True Then
       If Target.Row > 3 And Target.Column > 24 And Target.Cells.Count = 1 Then
    ...

  6. #26
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par casefayere
    Re,
    avant de s'attaquer au publipostage, j'aimerais que tonfichier soit fonctionnel.

    1; Numéro de référence unique; Noms; Prénoms; Num. et Rue; Code postal; Ville; Nom Produit; compagnies; date d'achat; date de retour; mensualité; prix;


    Citation Envoyé par casefayere
    Alors je ne comprends pas cette remarque :

    j'ai ajouté une condition, je pense qu'un problème arrive dès que tu selectionnes plusieurs cellules en meme temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...If maj = True Then
       If Target.Row > 3 And Target.Column > 24 And Target.Cells.Count = 1 Then
    ...
    je ne sélectionne pas plusieurs lignes ou colonnes ...

    Mais je n'ai pas compris a quoi tu fais référence.

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    et moi, je ne comprends pas pourquoi tes entetes se sont effacées, j'espère que tu a pris le bon fichier que je remets ci-dessous

  8. #28
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par casefayere Voir le message
    et moi, je ne comprends pas pourquoi tes entetes se sont effacées, j'espère que tu a pris le bon fichier que je remets ci-dessous
    oui j'avais pris le bon mdr :-)

    Tu as testé chez toi ?

    Je viens de tout remettre à non avec le dernier fichier que tu as ajouté et les 7 premiers lignes ne s'efface plus lol

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    oui, j'ai testé, j'ai fait comme toi tout remis à "non" et n'ai pas eu de problèmes, c'est là que je disais "selectionner plusieurs cellules" car j'ai effectivement selectionné toutes les cellules de Y4 à AL15 et cliqué sur remplacer => "oui" par "non". et tout s'est bien passé sachant que j'ai amélioré cette ligne de code partie (soulignée et rouge)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Target.Row > 3 And Target.Column > 24 And Target.Cells.Count = 1 Then

  10. #30
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Je viens d'effacer tout le contenu et de recommence un encodage "propre" et je n'ai plus le souci...

    Moi pas avoir compris mdr

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    alors si tu n'as plus rien à changer à ce stade, il va falloir prévoir un publipostage efficace en reprenant sur un autre tableau ou autre feuille toutes les commandes par client, à moins que voyes un autre défaut dans ce qui a été fait

  12. #32
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Problème avec la copie de ligne :

    Concernant le petit problème cité précédemment comme quoi une ligne n'est pas toujours copiée. Je pense avoir compris pourquoi.

    Si j'encode les données du clients dans l'onglet "détail client" et que je passe les produits à oui directement la ligne n'est pas toujours copiée.

    Je me suis rendu compte que je devais encoder les données du client. Aller dans l'onglet "Détail produit", Retourner dans l'onglet "Détail client" avant de pouvoir mettre les produit à "oui".

    Expliquer différemment :

    Dans l'onglet "Détail client", je dois encoder tout mes clients.
    Je dois aller ensuite dans l'onglet "Détail produit".
    Retourner dans l'onglet "Détail client" et mettre les produits à "oui".
    A ce moment, quand je met un produit à "oui", le message de confirmation apparait pour copier la ligne.

    Question ?

    Veux tu que je te prépare les fichiers de base pour le publipostage pour que cela soit plus clair et sache les données qui doivent y figurer ?

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    ou je n'ai pas compris cette remarque ou tu as mal compris le fonctionnement. Il est évident qu'il faille que ton client et ses coordonnées soient enregistrées avant de passer à sa commande, c'était ça le problème ?

  14. #34
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    J'ai du mal m'exprimer.


    Si j'ajoute un nouveau client et rempli directement les produits. La ligne ne se copie pas.

    Si j'ajoute un nouveau client, ne rempli pas les produits, je vais dans l'onglet "Détail des produits", reviens dans l'onglet "Détail des clients", met mes produits à "oui" la ligne se copie.

    Tu comprends ?

    toi, tu me dis que je dois d'abord encoder les infos de tout les clients.

    après, je dois changer d'onglet et aller dans "détail produit" (ou rien n'est à oui, donc rien n'est encore copié)

    après, je dois à nouveau changer d'onglet et revenir dans l'onglet "détail client" (ou maintenant, je place les produits à oui)

    et après avoir cliqué sur "ok", la ligne se copie.

    Serait-il possible de remplacer la confirmation après avoir sélectionné un "oui" par un bouton à la fin d'une ligne qui aurait la même fonction.

    Cela m'éviterait de devoir cliquer 15 fois sur "ok" si le client à les 15 produits...

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    j'ai testé et compris. tout vient de ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Activate()
    maj = True
    End Sub
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Chclient As Range
    If maj = True Then...
    C'est normal car à l'ouverture du classeur, j'ai spécifié ceci en rouge
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Workbook_Open()
    maj = False
    If maj = False Then
    With Sheets("Données Clients")
       nlfl1 = .Range("b" & .Rows.Count).End(xlUp).Row 'derniere ligne en col B
       Set plage = .Range("y4:al" & nlfl1) 'on donne une variable à la plage à traiter
       For Each cell In plage 'on parcoure les cellules
          If cell <> "oui" Then 'si elles sont différentes de "oui"
             cell = "non" 'on met "non"
          End If
       Next cell
    End With
    End If
    End Sub
    pour eviter une boucle sans fin, à la mise a jour des "non"
    je peux donc ajouter un code à la saisie d'un nouveau client, j'essaie et te tiens au courant

  16. #36
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    ah oki je comprends mieux

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Quelques changements,
    j'enleve le code à thisworkbook et modifie celui de la premiere feuille ("données clients"), essaies avec ce fichier

  18. #38
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    Quand j'efface le tableau et fait un nouvelle encodage. Si j'utilise la tabulation pour changer de colonne il me renvoie vers les "oui", "non" des produits.

    Pas très pratique

  19. #39
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Une proposition basée sur celle de casefayere
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim PlageChoix As String, PlageClient As String
    Dim LastLig As Long
     
    If Target.Count = 1 Then
       Application.ScreenUpdating = False
       LastLig = Cells(Rows.Count, 3).End(xlUp).Row
       PlageClient = "C4:V" & LastLig
       PlageChoix = "X4:AK" & LastLig
       If Not Intersect(Target, Range(PlageClient)) Is Nothing Then
          If Target.Row = LastLig Then
             Application.EnableEvents = False
             Range("A" & Target.Row).Value = Target.Row - 3
             If Range("AL" & Target.Row).Value = 0 Then
                Range("X4:AK4").Copy Range("X" & LastLig)
                Range("X" & LastLig & ":AK" & LastLig).Value = "non"
             End If
             Application.EnableEvents = True
          End If
       ElseIf Not Intersect(Target, Range(PlageChoix)) Is Nothing Then
          Range("AL" & Target.Row).Value = Application.CountIf(Range("X" & LastLig & ":AK" & LastLig), "oui")
          If Target.Value = "oui" Then
             Transfert Target
          Else
             Supprime Target
          End If
       End If
    End If
    End Sub
    Public Sub Transfert(Targ As Range)
    Dim LastLig As Long
     
    With Sheets("Liste des produits par client")
       .AutoFilterMode = False
       LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row + 1
       .Cells(LastLig, 1).Value = LastLig - 3
       .Range("B" & LastLig & ":C" & LastLig).Value = Range("C" & Targ.Row & ":D" & Targ.Row).Value
       .Range("D" & LastLig & ":F" & LastLig).Value = Range("G" & Targ.Row & ":I" & Targ.Row).Value
       .Range("G" & LastLig).Value = Cells(3, Targ.Column).Value
    End With
    End Sub
    Public Sub Supprime(Targ As Range)
    Dim Plage As Range
    Dim Prod As String, Nom As String, Prenom As String
     
    Prod = Cells(3, Targ.Column).Value
    Nom = Cells(Targ.Row, 3).Value
    Prenom = Cells(Targ.Row, 4).Value
    With Sheets("Liste des produits par client")
       .AutoFilterMode = False
       Set Plage = .UsedRange
       If Plage.Rows.Count > 1 Then
          Plage.AutoFilter field:=2, Criteria1:=Nom
          Plage.AutoFilter field:=3, Criteria1:=Prenom
          Plage.AutoFilter field:=7, Criteria1:=Prod
          If Plage.Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
             .Range("A4:A" & Plage.Rows.Count + 4).SpecialCells(xlCellTypeVisible).EntireRow.Delete
          End If
       End If
       .AutoFilterMode = False
    End With
    Set Plage = Nothing
    End Sub
    sur le fichier j'ai supprimé la colonne Numéro de référence unique et caché la colonne AL de la feuille Données Clients

  20. #40
    Membre habitué
    Inscrit en
    Janvier 2011
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 120
    Points : 129
    Points
    129
    Par défaut
    merci à vous deux :-)

    Citation Envoyé par mercatog
    sur le fichier j'ai supprimé la colonne Numéro de référence unique et caché la colonne AL de la feuille Données Clients

    Pourquoi avoir caché la colonne AL de la feuille Données Clients ?

Discussions similaires

  1. Forcer une nouvelle ligne dans une zone de texte
    Par nicolas2603 dans le forum IHM
    Réponses: 1
    Dernier message: 28/05/2008, 12h15
  2. Réponses: 3
    Dernier message: 05/05/2008, 12h00
  3. Réponses: 2
    Dernier message: 06/02/2007, 09h17

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