COPIER/COLLER LIGNE SOUS CONDITION DANS EXCEL

Signaler
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
-
Messages postés
3
Date d'inscription
jeudi 3 février 2011
Statut
Membre
Dernière intervention
8 février 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36127-copier-coller-ligne-sous-condition-dans-excel

Messages postés
3
Date d'inscription
jeudi 3 février 2011
Statut
Membre
Dernière intervention
8 février 2011

Merci beaucoup pour ton aide Nicostrong. Ca fonctionne!
Messages postés
6
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
7 février 2011

Salut Marnichou,

pour ton problème, la meilleur solution est celle proposé par Econs.

Tu définis des compteurs pour chacune de tes pages, puis lorsque tu fais ta boucle pour copier tes données, tu incrémente le compteur de la page, la valeur du compteur correspond au numéro de la ligne.

De cette manière, tu n'as plus de ligne vide dans tes pages.

Ton code devient donc:

Sub Button3_Click()

Dim i As Integer
Dim KindOfUpdate As String
CompteurS4 = 1
CompteurA4 = 1
CompteurD5 = 1

KindOfUpdate = MsgBox("Do you want to update file?", vbYesNo, "Update")

If KindOfUpdate = 6 Then

Worksheets("SAP").Activate
For i = 2 To 150
If Cells(i, 3) = "331123" Then
Worksheets("SAP").Range("A" & i & ":N" & i).Copy
Sheets("S4").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
CompteurS4 = CompteurS4 + 1
ElseIf Cells(i, 3) = "331127" Then
Worksheets("SAP").Range("A" & i & ":N" & i).Copy
Sheets("A4").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
CompteurA4 = CompteurA4 + 1
ElseIf Cells(i, 3) = "331145" Then
Worksheets("SAP").Range("A" & i & ":N" & i).Copy
Sheets("D5").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
CompteurD5 = CompteurD5 + 1
End If
Next i

End If

Voilà.

@@++

Nicostrong
End Sub
Messages postés
3
Date d'inscription
jeudi 3 février 2011
Statut
Membre
Dernière intervention
8 février 2011

Re-bonjour!

J'ai finalement réussi à faire tourner la macro; Voici le code :
MAIS j'ai un problème, dans les feuilles de destination (S4, A4 et D5), j'ai des lignes vides partout. Comment faire pour que les lignes se copient les unes en dessous des autres sans blancs? merci beaucoup!

Sub Button3_Click()

Dim i As Integer
Dim KindOfUpdate As String

KindOfUpdate = MsgBox("Do you want to update file?", vbYesNo, "Update")

If KindOfUpdate = 6 Then

Worksheets("SAP").Activate
For i = 2 To 150
If Cells(i, 3) = "331123" Then
Worksheets("SAP").Range("A" & i & ":N" & i).Copy
Sheets("S4").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ElseIf Cells(i, 3) = "331127" Then
Worksheets("SAP").Range("A" & i & ":N" & i).Copy
Sheets("A4").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ElseIf Cells(i, 3) = "331145" Then
Worksheets("SAP").Range("A" & i & ":N" & i).Copy
Sheets("D5").Range("C" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
Next i

End If

End Sub
Messages postés
3
Date d'inscription
jeudi 3 février 2011
Statut
Membre
Dernière intervention
8 février 2011

Bonjour,

Je profite de la renommée de ce site pour chercher une réponse à ma question.
Voilà j'ai une extraction SAP brute. Je voudrais créer une macro qui selon le cost center copie/Colle les lignes de l'extraction SAP vers un onglet (un onglet par cost center). J'ai reprise la macro ci-dessus en l'adapatant à mon cas, mais je suis déburtante en VBA :-S

SAP est ma feuille d'extraction qui contient des données sur environ 600 lignes (j'ai mis 700 pour être large). Ma condition " cost center" se trouve en Colonne D

Private Sub CommandButton1_Click()
Dim don
Dim Ligne
Dim KindOfUpdate

KindOfUpdate = MsgBox("Do you want to update the file?", vbYesNo, "Update")

If KindOfUpdate = 6 Then

For i = 2 To 700
If Cells(i, 4) = Costcenter1 Then
Worksheets(SAP).Range("A" & i & ":J" & i).Copy
Worksheets(Costcenter1).Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, skipBlanks:= _
False, Transpose:=False
ElseIf Cells(i, 4) = Costcenter2 Then
Worksheets(SAP).Range("A" & i & ":J" & i).Copy
Worksheets(Costcenter2).Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, skipBlanks:= _
False, Transpose:=False
ElseIf Cells(i, 3) = 331145 Then
Worksheets(SAP).Range("A" & i & ":J" & i).Copy
Worksheets(331145).Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, skipBlanks:= _
False, Transpose:=False
End If
Next i
Worksheets(SAP).Range("A2").Select

End If

End Sub


Merci beaucoup pour votre aide
Afficher les 10 commentaires