Aprè choi list copi xy Celule ver autre feuil 1er Ligne Vide Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
n
naruto29
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 27 janvier 2016
Version d'Excel : 2010

Message par naruto29 » 5 février 2016, 23:18

Bonjour a tous,

Après recherche dans le forum j'ai trouvé comment rechercher sur une feuille la première ligne vide et comment reporter d'une feuille a une autres mais franchement j'arrive pas a traduire tout ça en code.
Mon problème est comme suit:

Suite au choix de "bid" sur ma liste déroulante qui est sur la colonne B en feuil1 je souhaite que automatiquement il reporte uniquement les valeurs des colonnes A & G (pas toute la colonne A & G mais uniquement la colonne A&G de la ligne ou j'ai sélectionné "Bid") dans la feuil2 sur la première ligne vide disponible et ainsi de suite.

Je ne sais pas si j'ai été claire.

Milles mercis pour votre aide.

Cordialement.
suivis prospects.xlsm
(20.58 Kio) Téléchargé 6 fois
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'690
Appréciations reçues : 5
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 5 février 2016, 23:28

Bonsoir

Diantre, je ne subodorai pas que la réforme de l'orthographe aille si loin :lol:


A tester
naruto29 Recopie V001.xlsm
(21.14 Kio) Téléchargé 15 fois
U
UnProblemeAResoudre
Jeune membre
Jeune membre
Messages : 19
Inscrit le : 25 janvier 2016
Version d'Excel : 2010

Message par UnProblemeAResoudre » 5 février 2016, 23:36

Bonjour,

Je n'ai pas compris ton code qui est certainement different de ta demande.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim derlig As Long
    If Not Intersect(Target, Range("B2:B" & Range("A" & Rows.Count).End(xlUp).Row)) Is Nothing Then
        If Target.Value = "Bid" Then
            derlig = Sheets("Feuil2").Range("B" & Sheets("Feuil2").Rows.Count).End(xlUp).Row + 1
            Sheets("Feuil2").Range("B" & derlig) = Range("A" & Target.Row)
            Sheets("Feuil2").Range("C" & derlig) = Range("G" & Target.Row)
        End If
    End If
End Sub
n
naruto29
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 27 janvier 2016
Version d'Excel : 2010

Message par naruto29 » 5 février 2016, 23:50

Bonsoir Banzai64,

:D Merci beaucoup pour ton aide, je ne voudrais pas abuser mais y a t'il moyen que le Focus suit le reporting sur la feuil2, je m'explique, je voudrais que suit a cette action, le focus se met sur la colonne D de la ligne correspondante.

Encore merci Banzai64 et merci a tous.

Cordialement.
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'690
Appréciations reçues : 5
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 6 février 2016, 00:02

Bonsoir

Modifie le code
        .Activate
        [surligner].Range("C" & Rows.Count).End(xlUp).Offset(0, 1).Select[/surligner]
      End With
n
naruto29
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 27 janvier 2016
Version d'Excel : 2010

Message par naruto29 » 6 février 2016, 00:12

Merci Merci infiniment Banzai64 ça marche parfaitement :D

Bonne soirée a tous.
n
naruto29
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 27 janvier 2016
Version d'Excel : 2010

Message par naruto29 » 6 février 2016, 11:28

Bonjour a tous,

Merci beaucoup a tous pour l'entraide sur ce forum surtout pour les nuls comme moi qui débute :D .

La solution proposé par banzai64 marche parfaitement cependant lors de la copie de la feuil1 vers la feuile2 il reprend la mise en forme de la feuil1 et qui est différente de la feuil2, j'ai une mise en forme conditionnel avec =MOD(LIGNE(),2) avec couleur de fond différente d'une feuille a une autre.

Si quelqu'un peut m'aider, je joint le fichier.

Merci a tous.
naruto29 Recopie V001 (4).xlsm
(21.1 Kio) Téléchargé 6 fois
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'690
Appréciations reçues : 5
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 6 février 2016, 11:53

Bonjour

Utilise le code proposé par UnProblemeAResoudre

Ce qui donne
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long

  If Not Intersect(Target, Range("B2:B" & Range("A" & Rows.Count).End(xlUp)(2).Row)) Is Nothing Then
    If Target = "Lead" Then
      Target.Offset(0, 1) = Date
    ElseIf Target = "Qualify" Then
      Target.Offset(0, 2) = Date
    ElseIf Target = "Bid" Then
      Target.Offset(0, 3) = Date
      With Sheets("Feuil2")
        DerLig = .Range("B" & Rows.Count).End(xlUp).Row + 1
        .Range("B" & DerLig) = Range("A" & Target.Row)
        .Range("C" & DerLig) = Range("G" & Target.Row)
      ' change la liste déroulante de la feuil2 en A2 en "bid" et met le focus sur la cellule de la feuil2 en D2
        .Activate
        .Range("D" & DerLig).Select
      End With
      ' ActiveSheet.Cells(5, 4).Select  inclure variable i pour la ligne lors du calcule de la ligne vide
    ElseIf Target = "Failed" Then
      Target.Offset(0, 4) = Date
    End If
  End If
End Sub
n
naruto29
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 27 janvier 2016
Version d'Excel : 2010

Message par naruto29 » 6 février 2016, 14:35

Bonjour à toi Banzai64 et le Bonjour à tous,

Décidément Banzai64 que dire pour te remercier, un simple merci ou synonymes ne suffira pas pour l'aide précieuse que tu m'apporte ainsi que ce magnifique site d'entraides pour les nuls comme moi :D .

Chapeau Très Très Très bas.

Cordialement.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message