Copie avec sélection ?

Bonjour je vous joint un tableau afin que vous puissiez m'aider via une macro.

je voudrais que toutes les valeurs, du tableau de le feuille 2 soit recopié sur la feuille 1, excepté les lignes ou se trouvent les valeurs X6.

Merci à vous.

13classeur1.zip (9.52 Ko)

Bonjour,

Essaie avec ce code à placer dans un module et à associer à un bouton

Sub test()
Dim dlg as integer
Dim cel as range
With Sheets("Feuil2")
For Each cel In .Range("C1:C" & .Range("C" & Rows.Count).End(xlUp).Row)
    If UCase(cel.Value) <> "X6" Then
        dlg = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & cel.Row & ":C" & cel.Row).Copy Sheets("Feuil1").Range("A" & dlg)
    End If
Next
End With
End Sub

si ok, merci de cloturer le fil en cliquant sur le V vert à coté du bouton EDITER

Amicalement

Bonjour

Salut Dan

ou, avec un filtre élaboré (Code dans Module)

Cordialement

12classeur1.zip (14.51 Ko)

Merci à vous deux, mais Amadeus, je comprends pas comment tu as fait ?

Bonjour

comme cela (voir fichier)

Cordialement

12classeur1.zip (15.14 Ko)

Je comprends mieux ! merci.

Je reviens vers vous car, j'avais omis une modification

En fait je voudrais en que

  • que la colonne (feuill2) A soit copiée vers la colonne A (feuil1)
  • que la colonne (feuill2) B soit copiée vers la colonne H (feuil1)
  • que la colonne (feuill2) C soit copiée vers la colonne G (feuil1)

et bien sur sans copier les lignes ou la valeur "X6" y figure !

Merci d'avance pour votre macro sans filtre.

9classeur1.zip (12.28 Ko)

re,

essaie comme ceci :

Sub test()
Dim dlg As Integer
Dim cel As Range
With Sheets("Feuil2")
For Each cel In .Range("C2:C" & .Range("C" & Rows.Count).End(xlUp).Row)
    If UCase(cel.Value) <> "X6" Then
        dlg = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1

        Sheets("Feuil1").Range("A" & dlg) = .Range("A" & cel.Row)
        Sheets("Feuil1").Range("H" & dlg) = .Range("B" & cel.Row)
        Sheets("Feuil1").Range("G" & dlg) = .Range("C" & cel.Row)
    End If
Next
End With
End Sub

Si ok, clique sur le V vert à coté du bouton EDITER pour cloturer le fil

Amicalement

Je teste des que possible et je dirai ça.

Re,

Comme le filn'est pas cloturé, cela donne quoi ??

Voilà j'ai donc mis en place cette macro avec un bouton, cela fonctionne très bien, mais le seul soucis que j'ai c'est :

Si je click deux fois sur le bouton, les données sont copiées deux fois, ainsi de suite..... alors que je voudrai que cela copie les valeurs une fois et sans cumul.

Amadeus ou dan si vous pouvez y jeter un oeil.

8classeur1.zip (15.39 Ko)
 
sub  test ()
Sheets("Feuil1").Range("A1:A30,G1:G30, H1:H30").ClearContents
    Dim dlg As Integer
    Dim cel As Range
    With Sheets("Feuil2")
    For Each cel In .Range("C1:C" & .Range("C" & Rows.Count).End(xlUp).Row)
        If UCase(cel.Value) <> "X6" Then
            dlg = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1

            Sheets("Feuil1").Range("A" & dlg) = .Range("A" & cel.Row)
            Sheets("Feuil1").Range("H" & dlg) = .Range("B" & cel.Row)
            Sheets("Feuil1").Range("G" & dlg) = .Range("C" & cel.Row)
        End If
    Next
    End With
    Sheets("Feuil1").Select
    End Sub

Je viens de faire ça, ça à l'air de fonctionner mais ce qui me gêne aussi c'est que les valeurs sont copiées en ligne 2 sur la feuille 1.

Re,

Je viens de faire ça, ça à l'air de fonctionner mais ce qui me gêne aussi c'est que les valeurs sont copiées en ligne 2 sur la feuille 1.

Tu les veux où dans ta feuille ?

Dan a écrit :

Re,

Je viens de faire ça, ça à l'air de fonctionner mais ce qui me gêne aussi c'est que les valeurs sont copiées en ligne 2 sur la feuille 1.

Tu les veux où dans ta feuille ?

En A1 .

Re,

En dessous de la ligne dlg = ......., rejoute cette ligne

If dlg < 2 Then dlg = 1

A noter que le Sheets("Feuil1").Select ne sert pas dans ton cas. Donc tu peux le supprimer

Amicalement

Merci bien, je valide le topic.

Rechercher des sujets similaires à "copie selection"