Commande vba
Fermé
Francis
-
24 janv. 2013 à 17:47
gbinforme Messages postés 14939 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 26 janv. 2013 à 09:46
gbinforme Messages postés 14939 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 26 janv. 2013 à 09:46
A voir également:
- Commande vba
- Erreur 1004 vba ✓ - Forum VB / VBA
- Invite de commande - Guide
- Find vba - Astuces et Solutions
- Vba range avec variable ✓ - Forum VB / VBA
- Commande terminal mac - Guide
1 réponse
gbinforme
Messages postés
14939
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 657
24 janv. 2013 à 18:15
24 janv. 2013 à 18:15
Bonjour,
Voici une macro qui fait ce que tu souhaites :
Elle s'exécute avec un double clic sur la ligne à copier.
il faut remplacer les "valeur base" par tes valeurs et le "nom feuille" par tes noms.
Si la colonne A n'est pas toujours documentée tu modifies le A de cette ligne :
Voici une macro qui fait ce que tu souhaites :
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal sel As Range, Cancel As Boolean)
Dim ong As String, lig As Long
Cancel = True
Select Case Cells(sel.Row, "E").Value
Case "A" ' valeur base
ong = "Feuil1" ' nom feuille
Case "B"
ong = "Feuil2"
Case "C"
ong = "Feuil3"
Case "D"
ong = "Feuil4"
Case "F"
ong = "Feuil5"
Case Else
Exit Sub
End Select
With Sheets(ong)
lig = .Cells(Rows.Count, "A").End(xlUp).Row + 1
Rows(sel.Row).Copy Destination:=.Rows(lig)
MsgBox "Copie effectuée en feuille " & ong
End With
End Sub
Elle s'exécute avec un double clic sur la ligne à copier.
il faut remplacer les "valeur base" par tes valeurs et le "nom feuille" par tes noms.
Si la colonne A n'est pas toujours documentée tu modifies le A de cette ligne :
lig = .Cells(Rows.Count, "A").End(xlUp).Row + 1
24 janv. 2013 à 19:45
24 janv. 2013 à 21:22
On peut le faire mais pas avec un double clic qui ne prend qu'une cellule.
Alors presque la même :
Public Sub copier_lignes() Dim ong As String, lig As Long, sel As Object, nbl As Integer For Each sel In Selection.Rows Select Case Cells(sel.Row, "E").Value Case "A" ' valeur base ong = "Feuil1" ' nom feuille Case "B" ong = "Feuil2" Case "C" ong = "Feuil3" Case "D" ong = "Feuil4" Case "E" ong = "Feuil5" Case Else Exit Sub End Select With Sheets(ong) lig = .Cells(Rows.Count, "A").End(xlUp).Row + 1 Rows(sel.Row).Copy Destination:=.Rows(lig) nbl = nbl + 1 End With Next sel MsgBox nbl & " lignes copiées " End SubTu sélectionnes les lignes que tu veux,sur n'importe quelle colonne, puis tu lances la macro, avec soit :
- tu affectes un raccourci à la macro ctrl+y par exemple (alt+F8 et options)
- tu insères un objet sur ta feuille et tu affectes la macro
- tu fais alt+F8 et clic sur exécuter
24 janv. 2013 à 21:45
24 janv. 2013 à 22:18
24 janv. 2013 à 22:29
With Workbooks("Classeur2.xlsx").Sheets(ong)Tu remplaces "Classeur2.xlsx" par le nom de ton second classeur