Quelle formule/code VBA pour copier ligne dans autre onglet?
RésoluLaure -
Bonjour,
Comme d'hab, je sèche...
Sur Excel 2016, j'ai 3 onglets qui sont :
1. Base
2. GZB+C
3. FRA
Dans la colonne A de mon onglet base, j'ai le code de l'entreprise (GZB, GZC ou FRA) et j'aimerais que toutes les lignes qui contiennent GZB dans cette colonne A se copient dans l'onglet "GZB+C". Idem pour GZC et enfin idem pour FRA mais dans l'onglet FRA.
Merci pour votre aide :-)
a+
Windows / Chrome 106.0.0.0
- Quelle formule/code VBA pour copier ligne dans autre onglet?
- Code ascii - Guide
- Formule si et - Guide
- Formule somme excel ligne - Guide
- Partager photos en ligne - Guide
- Excel retour à la ligne dans une formule - Guide
4 réponses
Bonjour Laure
Voilà un code VBA :
Sub reports() x = 0 y = 0 ligne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For n = 1 To ligne Sheets("Base").Select Sheets("Base").Rows(n & ":" & n).Select Selection.Copy If Left(Sheets("Base").Range("A" & n), 1) = "G" Then x = x + 1: Sheets("GZB+C").Select: Rows(x & ":" & x).Select: Sheets("GZB+C").Paste If Sheets("Base").Range("A" & n) = "FRA" Then y = y + 1: Sheets("FRA").Select: Rows(y & ":" & y).Select: Sheets("FRA").Paste Next End Sub
Cdlmnt
Via
Bonjour a vous deux,
du coup, ça ne marche pas...
Pouvez expliquer un peu plus: ou avez vous mis le code et comment l'avez vous lance?
Bonjour F894009,
Effectivement, je persistais à vouloir mettre le code en faisant un clique gauche sur la feuille "BASE" et à sélectionner la feuille "BASE" dans le menu VBA. Je viens donc de comprendre qu'il faut passer par l'onglet "Développeur" dans le ruban :-) Le résultat est donc là, Merci beaucoup.
Il y a juste un truc qui coince... c'est l'emplacement des lignes.... pourquoi ça démarre en ligne 1 sur certaine feuille et en 60 pour d'autres ? Merci :-)
Re,
Je n'ai pas teste le code de via55, mais a priori ca roule. Les pointeurs de ligne sont a zero au debut
une autre facon de faire:
Sub reports() On Error GoTo fin x = 0 y = 0 Application.ScreenUpdating = False 'fige ecran 'feuille Base With Worksheets("Base") ligne = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row 'derniere cellule non vide colonne A 'boucle sur colonne A For n = 1 To ligne If Left(.Range("A" & n), 1) = "G" Then ' cellule avec GZB ou GZC x = x + 1 'pointeur de ligne pour feuille GZB+C .Rows(n & ":" & n).Copy Sheets("GZB+C").Range("A" & x) 'ecriture ligne ElseIf .Range("A" & n) = "FRA" Then ' cellule avec FRA y = y + 1 'pointeur de ligne pour feuille FRA .Rows(n & ":" & n).Copy Sheets("FRA").Range("A" & y) ' ecriture ligne Else End If Next n End With fin: If Err.Number <> 0 Then MsgBox "Attention: erreur " & Err.Number & vbNewLine & Err.Description End If Application.ScreenUpdating = True On Error GoTo 0 End Sub
Bonjour Via,
Un grand merci, suis encore plus une pive en vba qu'en excel, du coup, ça ne marche pas... Mais merci d'avoir pris le temps :-) Belle journée.