J'ai une situation assez spécifique. J'ai besoin de copier chaque ligne de sheet1 (ot.2) à sheet2 (odch.l.2) si la colonne "AD" dans cette rangée a dans la cellule "NOK" marque "x" ou "X". Les formes doivent rester avec les données. Jusqu'à présent, j'ai réussi à copier toutes les formes, qu'il y ait x ou X, tandis que les données dépendent de la présence de données x ou X - BUT et que les formes ne sont pas collées - les données sont triées les unes après les autres et les formes copié par la position dans la feuille de sourceexcel vba - copier/coller ligne spécifique à une autre feuille avec toutes sortes de formes si les conditions sont remplies
Je n'ai aucune idée de la façon de procéder, je suis novice dans ce domaine et j'apprécierais toute sorte d'aide.
si vous allez besoin d'un peu plus d'informations, s'il vous plaît laissez-moi savoir, je suis va montre ce fil tout le temps :-D merci
voici mon code:
Sub test150929()
Application.ScreenUpdating = False
Dim DestSheet As Worksheet
Dim Destsheet2 As Worksheet
Set DestSheet = Worksheets("odch.l.2")
Set Destsheet2 = Worksheets("ot.2")
Dim sRow As Long 'row index on source worksheet
Dim dRow As Long 'row index on destination worksheet
Dim sCount As Long
Dim Range_to As Integer
Dim Cell As String
Dim oneShape As Shape
Dim myLeft As Single, myTop As Single
sCount = 0
dRow = 16
'DestSheet.Select
'Cell = Range("AM12")
'Range(Cells(15, 1), Cells(Cell, 39)).Select
Destsheet2.Select
Cell = "A15:AM" & Range("AM12")
Range_to = Range("AM12")
For Each oneShape In Destsheet2.Shapes
With oneShape
myLeft = .Left
myTop = .Top
.Copy
End With
With DestSheet
.Paste
With .Shapes(.Shapes.Count)
.Top = myTop
.Left = myLeft
End With
End With
Next oneShape
Destsheet2.Select
For sRow = 1 To Range_to
'use pattern matching to find "X" anywhere in cell
If Cells(sRow, "AD") Like "*X*" Then
sCount = sCount + 1
Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
Cells(sRow, "B").Copy Destination:=DestSheet.Cells(dRow, "B")
Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "C")
Cells(sRow, "D").Copy Destination:=DestSheet.Cells(dRow, "D")
Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "E")
Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "F")
Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "G")
Cells(sRow, "H").Copy Destination:=DestSheet.Cells(dRow, "H")
Cells(sRow, "I").Copy Destination:=DestSheet.Cells(dRow, "I")
Cells(sRow, "J").Copy Destination:=DestSheet.Cells(dRow, "J")
Cells(sRow, "K").Copy Destination:=DestSheet.Cells(dRow, "K")
Cells(sRow, "L").Copy Destination:=DestSheet.Cells(dRow, "L")
Cells(sRow, "M").Copy Destination:=DestSheet.Cells(dRow, "M")
Cells(sRow, "N").Copy Destination:=DestSheet.Cells(dRow, "N")
Cells(sRow, "O").Copy Destination:=DestSheet.Cells(dRow, "O")
Cells(sRow, "P").Copy Destination:=DestSheet.Cells(dRow, "P")
Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "Q")
Cells(sRow, "R").Copy Destination:=DestSheet.Cells(dRow, "R")
Cells(sRow, "S").Copy Destination:=DestSheet.Cells(dRow, "S")
Cells(sRow, "T").Copy Destination:=DestSheet.Cells(dRow, "T")
Cells(sRow, "U").Copy Destination:=DestSheet.Cells(dRow, "U")
Cells(sRow, "V").Copy Destination:=DestSheet.Cells(dRow, "V")
Cells(sRow, "W").Copy Destination:=DestSheet.Cells(dRow, "W")
Cells(sRow, "X").Copy Destination:=DestSheet.Cells(dRow, "X")
Cells(sRow, "Y").Copy Destination:=DestSheet.Cells(dRow, "Y")
Cells(sRow, "Z").Copy Destination:=DestSheet.Cells(dRow, "Z")
Cells(sRow, "AA").Copy Destination:=DestSheet.Cells(dRow, "AA")
Cells(sRow, "AB").Copy Destination:=DestSheet.Cells(dRow, "AB")
Cells(sRow, "AC").Copy Destination:=DestSheet.Cells(dRow, "AC")
Cells(sRow, "AD").Copy Destination:=DestSheet.Cells(dRow, "AD")
Cells(sRow, "AE").Copy Destination:=DestSheet.Cells(dRow, "AE")
Cells(sRow, "AF").Copy Destination:=DestSheet.Cells(dRow, "AF")
Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "AG")
Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "AH")
Cells(sRow, "AI").Copy Destination:=DestSheet.Cells(dRow, "AI")
Cells(sRow, "AJ").Copy Destination:=DestSheet.Cells(dRow, "AJ")
Cells(sRow, "AK").Copy Destination:=DestSheet.Cells(dRow, "AK")
Cells(sRow, "AL").Copy Destination:=DestSheet.Cells(dRow, "AL")
Cells(sRow, "AM").Copy Destination:=DestSheet.Cells(dRow, "AM")
End If
If Cells(sRow, "AD") Like "*x*" Then
sCount = sCount + 1
dRow = dRow + 1
'copy cols A,F,E & D
Cells(sRow, "A").Copy Destination:=DestSheet.Cells(dRow, "A")
Cells(sRow, "B").Copy Destination:=DestSheet.Cells(dRow, "B")
Cells(sRow, "C").Copy Destination:=DestSheet.Cells(dRow, "C")
Cells(sRow, "D").Copy Destination:=DestSheet.Cells(dRow, "D")
Cells(sRow, "E").Copy Destination:=DestSheet.Cells(dRow, "E")
Cells(sRow, "F").Copy Destination:=DestSheet.Cells(dRow, "F")
Cells(sRow, "G").Copy Destination:=DestSheet.Cells(dRow, "G")
Cells(sRow, "H").Copy Destination:=DestSheet.Cells(dRow, "H")
Cells(sRow, "I").Copy Destination:=DestSheet.Cells(dRow, "I")
Cells(sRow, "J").Copy Destination:=DestSheet.Cells(dRow, "J")
Cells(sRow, "K").Copy Destination:=DestSheet.Cells(dRow, "K")
Cells(sRow, "L").Copy Destination:=DestSheet.Cells(dRow, "L")
Cells(sRow, "M").Copy Destination:=DestSheet.Cells(dRow, "M")
Cells(sRow, "N").Copy Destination:=DestSheet.Cells(dRow, "N")
Cells(sRow, "O").Copy Destination:=DestSheet.Cells(dRow, "O")
Cells(sRow, "P").Copy Destination:=DestSheet.Cells(dRow, "P")
Cells(sRow, "Q").Copy Destination:=DestSheet.Cells(dRow, "Q")
Cells(sRow, "R").Copy Destination:=DestSheet.Cells(dRow, "R")
Cells(sRow, "S").Copy Destination:=DestSheet.Cells(dRow, "S")
Cells(sRow, "T").Copy Destination:=DestSheet.Cells(dRow, "T")
Cells(sRow, "U").Copy Destination:=DestSheet.Cells(dRow, "U")
Cells(sRow, "V").Copy Destination:=DestSheet.Cells(dRow, "V")
Cells(sRow, "W").Copy Destination:=DestSheet.Cells(dRow, "W")
Cells(sRow, "X").Copy Destination:=DestSheet.Cells(dRow, "X")
Cells(sRow, "Y").Copy Destination:=DestSheet.Cells(dRow, "Y")
Cells(sRow, "Z").Copy Destination:=DestSheet.Cells(dRow, "Z")
Cells(sRow, "AA").Copy Destination:=DestSheet.Cells(dRow, "AA")
Cells(sRow, "AB").Copy Destination:=DestSheet.Cells(dRow, "AB")
Cells(sRow, "AC").Copy Destination:=DestSheet.Cells(dRow, "AC")
Cells(sRow, "AD").Copy Destination:=DestSheet.Cells(dRow, "AD")
Cells(sRow, "AE").Copy Destination:=DestSheet.Cells(dRow, "AE")
Cells(sRow, "AF").Copy Destination:=DestSheet.Cells(dRow, "AF")
Cells(sRow, "AG").Copy Destination:=DestSheet.Cells(dRow, "AG")
Cells(sRow, "AH").Copy Destination:=DestSheet.Cells(dRow, "AH")
Cells(sRow, "AI").Copy Destination:=DestSheet.Cells(dRow, "AI")
Cells(sRow, "AJ").Copy Destination:=DestSheet.Cells(dRow, "AJ")
Cells(sRow, "AK").Copy Destination:=DestSheet.Cells(dRow, "AK")
Cells(sRow, "AL").Copy Destination:=DestSheet.Cells(dRow, "AL")
Cells(sRow, "AM").Copy Destination:=DestSheet.Cells(dRow, "AM")
End If
Next sRow
MsgBox sCount & " Rows Copied", vbInformation, "Transfer Done"
End Sub
Y at-il une raison de ne pas utiliser 'cellules (sRow, "A") Redimensionner (1, 39) .copy Destination:. = DestSheet.Cells (drow, "A")' – Jeeped
Si vous copie complète lignes pourquoi ne pas utiliser 'DestSheet2.Rows (sRow) .Copy destination: = DestSheet.Rows (dRow)'? Btw votre code n'a pas incrémenter dRow dans le cas X, et vous pouvez factoriser les cas x et X. –
comme je l'ai dit, je suis vba newbie. Merci pour vos suggestions, va l'essayer et vous le faire savoir – helloweenx