A voir également:
- Excel: macro de copie valeurs sans formule
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Mise en forme conditionnelle excel - Guide
3 réponses
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
12 janv. 2012 à 21:58
12 janv. 2012 à 21:58
Bonjour,
Je ne te refais pas tout le code mais juste un exemple pour copier les valeurs d'une plage.
A mettre dans Feuil1 :
eric
Je ne te refais pas tout le code mais juste un exemple pour copier les valeurs d'une plage.
A mettre dans Feuil1 :
Dim lig As Long lig = [Feuil2!A65536].End(xlUp).Row + 1 Worksheets("Feuil2").Cells(lig, 1).Resize(1, 7) = [A11:G11].Value
eric
Bonsoir à tous,
Je reprends le fil tardivement pour remercier encore tous les helpers car, grâce à eux, je pense avoir réalisé quelque modeste progrès.
En reconstituant par puzzle une macro du genre ci-dessous:
Sub Bouton16_Cliquer()
If Range("H13") = 0 Then
ActiveSheet.Shapes("Bouton 16").ControlFormat.Enabled = False
Else:
Dim ws1 As Worksheet, ws2 As Worksheet
Dim l1 As Range, l2 As Range, l3 As Range
Dim lastr As Long, compteur As Long
Set ws1 = Worksheets("accueil")
Set ws2 = Worksheets("pagedit")
Set l1 = ws1.Range("B13:H13") ` à copier (a)
Set l2 = ws1.Range("B18:J18") ` à copier (b)
Set l3 = ws1.Range("I27:L27") ` à copier (c )
lastr = ws2.Range("A1500").End(xlUp).Row
compteur = ws1.Range("H27").Value `n° de validation
If MsgBox("CONFIRMER" & Chr(10) & "la VALIDATION ?", vbYesNo, "Confirmation") = vbYes Then
With ws2 ` copies de (a) (b) et (c ) sur 1 ligne en page 2
ws2.Unprotect ("etasseur")
.Cells(lastr + 1, 1).Resize(1, 7) = l1.Value ` coller (a)
.Cells(lastr + 1, 8).Resize(1, 9) = l2.Value ` coller (b)
.Cells(lastr + 1, 17).Resize(1, 4) = l3.Value ` coller (c )
ws2.Protect Password:="etasseur"
End With
With ws1
.Range("H26") = 1 ` repère pour retour en annulation
.Range("H27") = compteur + 1 ` n° validation +1
.Range("C13:G13").ClearContents ` (a)
.Range("C18:H18").ClearContents ` (b)
End With
Range("C13").Select ` retour à la case départ
End If
End If
End Sub
Je suppose qu'elle doit être simplifiée....
et si cette macro peut servir à quelqu'un, il gagnera le temps que j'y ai passé
bonne continuation à tous
cordialement
axion
Je reprends le fil tardivement pour remercier encore tous les helpers car, grâce à eux, je pense avoir réalisé quelque modeste progrès.
En reconstituant par puzzle une macro du genre ci-dessous:
Sub Bouton16_Cliquer()
If Range("H13") = 0 Then
ActiveSheet.Shapes("Bouton 16").ControlFormat.Enabled = False
Else:
Dim ws1 As Worksheet, ws2 As Worksheet
Dim l1 As Range, l2 As Range, l3 As Range
Dim lastr As Long, compteur As Long
Set ws1 = Worksheets("accueil")
Set ws2 = Worksheets("pagedit")
Set l1 = ws1.Range("B13:H13") ` à copier (a)
Set l2 = ws1.Range("B18:J18") ` à copier (b)
Set l3 = ws1.Range("I27:L27") ` à copier (c )
lastr = ws2.Range("A1500").End(xlUp).Row
compteur = ws1.Range("H27").Value `n° de validation
If MsgBox("CONFIRMER" & Chr(10) & "la VALIDATION ?", vbYesNo, "Confirmation") = vbYes Then
With ws2 ` copies de (a) (b) et (c ) sur 1 ligne en page 2
ws2.Unprotect ("etasseur")
.Cells(lastr + 1, 1).Resize(1, 7) = l1.Value ` coller (a)
.Cells(lastr + 1, 8).Resize(1, 9) = l2.Value ` coller (b)
.Cells(lastr + 1, 17).Resize(1, 4) = l3.Value ` coller (c )
ws2.Protect Password:="etasseur"
End With
With ws1
.Range("H26") = 1 ` repère pour retour en annulation
.Range("H27") = compteur + 1 ` n° validation +1
.Range("C13:G13").ClearContents ` (a)
.Range("C18:H18").ClearContents ` (b)
End With
Range("C13").Select ` retour à la case départ
End If
End If
End Sub
Je suppose qu'elle doit être simplifiée....
et si cette macro peut servir à quelqu'un, il gagnera le temps que j'y ai passé
bonne continuation à tous
cordialement
axion
laplanche80
Messages postés
102
Date d'inscription
mardi 23 août 2011
Statut
Membre
Dernière intervention
29 octobre 2013
3
12 janv. 2012 à 22:01
12 janv. 2012 à 22:01
Je ne l'est pas étudié profondément ton code, mais tu rajouter .value en instruction supplémentaire.
C'est plus embêtant mais moi j'aurais fait dans ce genre :
SelectionCelluleColler.Value = SelectionCelluleCopier.Value
En espérant que sa va t'aider
C'est plus embêtant mais moi j'aurais fait dans ce genre :
SelectionCelluleColler.Value = SelectionCelluleCopier.Value
En espérant que sa va t'aider
laplanche80
Messages postés
102
Date d'inscription
mardi 23 août 2011
Statut
Membre
Dernière intervention
29 octobre 2013
3
13 janv. 2012 à 16:59
13 janv. 2012 à 16:59
de rien, et puis tiens nous au courant.
Meilleurs voeux pareillement
Meilleurs voeux pareillement
12 janv. 2012 à 22:37
Merci de ta réponse rapide, mais d'abord, s'il n'est pas trop tard, je te présente tous mes Meilleurs Voeux pour 2012
je vais essayer de reprendre d'après ton avis
toutefois, j'ai 2 lignes séparées à coller "à la suite" sur la 2nde feuille, en ajout de ligne à chaque validation de type formulaire.
je vais jongler dès demain et te tiendrai au courant
encore merci
cordialement
axion
12 janv. 2012 à 22:59
toutefois, j'ai 2 lignes séparées à coller "à la suite" sur la 2nde feuille
Il faut le faire en 2 fois comme tu as fait.
eric