XL 2016 erreur dans macro

jad73

XLDnaute Occasionnel
Bonjour le forum
J'éxécute une macro qui devrais recopier les données a la suite des autres hors elle ne le fait pas elle ecrase sur les autres.
Ou est l'erreur.

VB:
Sub Macro15()
'
' Macro15 Macro
' copie B3:O26 en grille3
'

    Range("B3:O26").Select
    Selection.Copy
    Sheets("grille3").Select
  vligne = Range("A65536").End(xlUp).Rows
    vligne = vligne + 1
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=30
    Sheets("combi").Select
    Range("A18").Select
End Sub
merci
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Une autre syntaxe possible
VB:
Sub Macro15()
' copie B3:O26 en grille3
Dim rng As Range
Set rng = Range("B3:O26")
Sheets("grille3").Cells(Rows.Count, 1).End(3)(2).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Et une seconde (qui passe par un Array)
VB:
Sub Macro15b()
' copie B3:O26 en grille3
Dim t: t = Range("B3:O26").Value
Sheets("grille3").Cells(Rows.Count, 1).End(3)(2).Resize(UBound(t, 1), UBound(t, 2)).Value = t
End Sub
 

jad73

XLDnaute Occasionnel
Bonjour Staple1600, le forum
Merci pour ta réponse, c'est parfait.
J'utilise pourtant Vligne dans un autre fichier et elle fonctionne bien, bizarre.
J'ai rassemblé donc 5 macros en une seule, maintenant que la recopie ,avec ton fonctionne, le seul probleme que j'ai,
c'est que quand je clique sur la macro qui lance les autres, la 1ere macro14 qui prend la ligne W3:AP3 et la copie en B1,
VB:
Sub Macro14()
'
' Macro14 Macro
' copie ligne plage test W3:AP3 vers B1
'
    Range("W3").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("W3:AP3").Select
    Selection.Copy
    Range("B1").Select
    ActiveSheet.Paste
    Range("A10").Select
End Sub
chaque fois donc reprend la meme ligne, W3:AP3
comment faudrait-il inscrire dans le code qu'elle saute une ligne a chaque clique de la 1ere,
c'est a dire W3:AP3 puis W4:AP4 et ainsi de suite jusqu'a la fin de la plage de test.
Merci
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

Pas sûr d'avoir tout compris
VB:
Sub Macro14b()
' Macro14 Macro
' copie ligne plage test W3:AP3 vers B1
Dim Lig&, t
Lig = Cells(Rows.Count, "AP").End(3).Row
For i = 3 To Lig
Cells(i, "W") = 1
t = Cells(i, "W").Resize(, 20).Value
Cells(i, 2).Resize(, 20).Value = t
Erase t
Next
End Sub
 

jad73

XLDnaute Occasionnel
Bonjour Staple1600, le forum
merci mais ce pas exactement ça que je recherche.
Le but est de tester des combinaisons et la marche a suivre quand je le fait manuellement.
1-je copie la ligne W3:AP3 et la recopie en B1
2-je clique sur les macros d'abord Go puis Macro11, Macro15 et Raz.
puis je recommence mais en copiant cette fois la ligne W4:AP4 puis les macros.
puis W5:AP5, les macros et ainsi de suite W6:AP6, les macros, W7:AP7.......
et ce jusqu'a la fin de la plage test.
C'est pourquoi dans la macro14 je pensais le faire automatiquement la copie des lignes W:AP.
j'ai regardé avec offset mais étant nul en vba je n'y arrive pas
Je joint un fichier.
merci
 

Fichiers joints

jad73

XLDnaute Occasionnel
Bonjour staple1600, le forum
oui, exact, réflechir avant de cliquer
merci
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas