Copier Coller dans une autre feuille

JORDAN

XLDnaute Impliqué
Bonjour le Fourm,

Voici mon petit problème du jour :

Je n'arrive pas à coller la sélection sur la 2ème page.
Mon fichier en PJ avec explications

Par avance merci
A+ [file name=CopierColler_20060125110458.zip size=12107]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CopierColler_20060125110458.zip[/file]
 

Pièces jointes

  • CopierColler_20060125110458.zip
    11.8 KB · Affichages: 42

porcinet82

XLDnaute Barbatruc
Salut Jordan,

Regarde en PJ si la solution que je te propose te convient. JE n'est pas pris ton code; j'en ai refais un.

[file name=Jordan.zip size=12924]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Jordan.zip[/file]

@+
 

Pièces jointes

  • Jordan.zip
    12.6 KB · Affichages: 83
  • Jordan.zip
    12.6 KB · Affichages: 86
  • Jordan.zip
    12.6 KB · Affichages: 84

JORDAN

XLDnaute Impliqué
Re,

J'ai intégrer ton code dans mon fichier, et surprise, ça fonctionne presque bien, le code ne copie que la première ligne qu'il trouve et ne continue pas ça recherche.

Code:
Private Sub CommandButton1_Click()

'declaration des variables
Dim NomFeuille As String
Dim C As Range
Dim Desti
Dim f As Worksheet
Dim Ligne As Variant
Dim selstr As String

Application.ScreenUpdating = False

NomFeuille = CdeAuto.CdeFournisseur.Value

For Each f In Worksheets
    If f.Name = NomFeuille Then
        MsgBox ('Une feuille nommée - ' & NomFeuille & ' - existe déjà')
        Exit Sub
End If
Next
    Sheets('COMMANDE').Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = NomFeuille
    Range('C3') = NomFeuille

Sheets('LIBRAIRIE').Select
Cells.Select
Selection.Sort Key1:=Range('F2'), Order1:=xlAscending, Key2:=Range('H2') _
    , Order2:=xlAscending, Key3:=Range('B2'), Order3:=xlAscending, Header:= _
    xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
    xlSortNormal
Range('A1').Select
Sheets(NomFeuille).Select
Application.ScreenUpdating = True

Dim i As Byte

Application.Goto Sheets('RESULTAT').Range('A1')  ' RESULTAT -> Feuille de données à extraire
For i = 1 To Range('C65536').End(xlUp).Row
    If Cells(i, 3).Value = NomFeuille Then       ' NomFeuille -> Valeur de la ComboBox
        Range('A' & i & ':B' & i & ',D' & i).Select
        Selection.Copy
        Sheets(NomFeuille).Select
        Range('A9').Select
        If Cells(10, 1).Value = '' Then
            Cells(10, 1).Select
            ActiveSheet.Paste
            Sheets(NomFeuille).Select
        Else
            Selection.End(xlDown).Select
            Selection.Offset(1, 0).Select
            ActiveSheet.Paste
            Sheets(NomFeuille).Select
        End If
    End If
Next i
End Sub

Sinon, connais tu un moyen pour que je te fasse parvenir mon fichier (Trop gros pour Excel-Downloads)

Merci
 

JORDAN

XLDnaute Impliqué
Sans les bugs peut-être

Code:
Private Sub CommandButton1_Click()

'declaration des variables
Dim NomFeuille As String
Dim C As Range
Dim f As Worksheet

Application.ScreenUpdating = False

NomFeuille = CdeAuto.CdeFournisseur.Value

For Each f In Worksheets
    If f.Name = NomFeuille Then
        MsgBox ('Une feuille nommée - ' & NomFeuille & ' - existe déjà')
        Exit Sub
End If
Next
    Sheets('COMMANDE').Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = NomFeuille
    Range('C3') = NomFeuille

Sheets('LIBRAIRIE').Select
Cells.Select
Selection.Sort Key1:=Range('F2'), Order1:=xlAscending, Key2:=Range('H2') _
    , Order2:=xlAscending, Key3:=Range('B2'), Order3:=xlAscending, Header:= _
    xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
    xlSortNormal
Range('A1').Select
Sheets(NomFeuille).Select
Application.ScreenUpdating = True

Dim i As Byte

Application.Goto Sheets('RESULTAT').Range('A1')  ' RESULTAT -> Feuille de données à extraire
For i = 1 To Range('C65536').End(xlUp).Row
    If Cells(i, 3).Value = NomFeuille Then       ' NomFeuille -> Valeur de la ComboBox
        Range('A' & i & ':B' & i & ',D' & i).Select
        Selection.Copy
        Sheets(NomFeuille).Select
        Range('A9').Select
        If Cells(10, 1).Value = '' Then
            Cells(10, 1).Select
            ActiveSheet.Paste
            Sheets(NomFeuille).Select
        Else
            Selection.End(xlDown).Select
            Selection.Offset(1, 0).Select
            ActiveSheet.Paste
            Sheets(NomFeuille).Select
        End If
    End If
Next i
End Sub
 

JORDAN

XLDnaute Impliqué
Arf, encore un essai en 2 parties

Code:
Private Sub CommandButton1_Click()

'declaration des variables
Dim NomFeuille As String
Dim C As Range
Dim f As Worksheet

Application.ScreenUpdating = False

NomFeuille = CdeAuto.CdeFournisseur.Value

For Each f In Worksheets
    If f.Name = NomFeuille Then
        MsgBox ('Une feuille nommée - ' & NomFeuille & ' - existe déjà')
        Exit Sub
End If
Next
    Sheets('COMMANDE').Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = NomFeuille
    Range('C3') = NomFeuille

Sheets('LIBRAIRIE').Select
Cells.Select
Selection.Sort Key1:=Range('F2'), Order1:=xlAscending, Key2:=Range('H2') _
    , Order2:=xlAscending, Key3:=Range('B2'), Order3:=xlAscending, Header:= _
    xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
    xlSortNormal
Range('A1').Select
Sheets(NomFeuille).Select
Application.ScreenUpdating = True

Code:
Dim i As Byte

Application.Goto Sheets('RESULTAT').Range('A1')  ' RESULTAT -> Feuille de données à extraire
For i = 1 To Range('C65536').End(xlUp).Row
    If Cells(i, 3).Value = NomFeuille Then       ' NomFeuille -> Valeur de la ComboBox
        Range('A' & i & ':B' & i & ',D' & i).Select
        Selection.Copy
        Sheets(NomFeuille).Select
        Range('A9').Select
        If Cells(10, 1).Value = '' Then
            Cells(10, 1).Select
            ActiveSheet.Paste
            Sheets(NomFeuille).Select
        Else
            Selection.End(xlDown).Select
            Selection.Offset(1, 0).Select
            ActiveSheet.Paste
            Sheets(NomFeuille).Select
        End If
    End If
Next i
End Sub
 

porcinet82

XLDnaute Barbatruc
Ouai je crois voir ou se situe le problème, en fait, le soucis vient du fait que le code est placé dans un module de feuille.

Donc modifie le code de la manière suivante et ca devrait fonctionné (bien entendu je te laisse le soin de remodifer les noms de feuilles et le texte qu'il faut recuperer dans la combo) :

Code:
Private Sub CommandButton1_Click()
Dim i As Byte

Application.Goto Sheets('RESULTAT').Range('A1')  ' RESULTAT -> Feuille de données à extraire
For i = 1 To Range('C65536').End(xlUp).Row
    If Cells(i, 3).Value = 'HACHETTE' Then  ' NomFeuille -> Valeur de la ComboBox
        Range('A' & i & ':B' & i & ',D' & i).Select
        Selection.Copy
        Application.Goto Sheets('COLLAGE').Range('A9')
        If Sheets('COLLAGE').Cells(10, 1).Value = '' Then
            Sheets('COLLAGE').Cells(10, 1).Select
            ActiveSheet.Paste
            Sheets('RESULTAT').Select
        Else
            Selection.End(xlDown).Select
            Selection.Offset(1, 0).Select
            ActiveSheet.Paste
            Sheets('RESULTAT').Select
        End If
    End If
Next i
End Sub

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 213
Messages
2 086 302
Membres
103 174
dernier inscrit
OBUTT