Quelle formule/code VBA pour copier ligne dans autre onglet?
Résolu/Fermé- Quelle formule/code VBA pour copier ligne dans autre onglet?
- Formule excel pour additionner plusieurs cellules - Guide
- Formule si et - Guide
- Aller à la ligne excel - Guide
- Code asci - Guide
- Copier une vidéo youtube - Guide
4 réponses
10 oct. 2022 à 19:31
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
11 oct. 2022 à 08:17
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 :-)
Modifié le 11 oct. 2022 à 09:54
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
11 oct. 2022 à 08:02
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.