VBA demande pour optimisation de code pour couper et coller dans même onglet

Amigos

XLDnaute Nouveau
Bonjour le Forum,

J'essaie d'optimiser un code vba car je dois déplacer (couper, coller) 3 cellules en même temps et répéter cette action autant de fois qu'il y a de colonnes /3.


dans le lien ci dessous propose plein d'astuce , j'ai essayé de m'en inspirer et cela me génère une erreur

Auriez vous une idée ?

Ce lien n'existe plus

le code qu'enregistre la macro est
ActiveCell.Offset(0, 13).Range("A1:C1").Select
Selection.Cut
ActiveCell.Offset(1, -3).Range("A1").Select
ActiveSheet.Paste

merci en tout cas
 

Misange

XLDnaute Barbatruc
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

Bonjour
Si plutot que ce qui ne marche pas, tu nous disais ce que tu souhaites copier et où...

En tous cas tu n'as pas trouvé le code ci-dessus sur excelabo (ni avec l'enregistreur de macros je pense :))

Un exemple de code avec activecell offset puisque c'est ce que tu sembles vouloir faire

Code:
ActiveCell(, 5).Resize(1, 2).Copy Destination:=ActiveCell(, 8)
copie la cellule située 5 cellule à droite de la cellule active, redimensionne la plage en l'étendant de 1 cellule vers la droite, copie et colle le tout 8 cellules à droite de la cellule active
Donc par exemple avec la cellule active en colonne A, ça te copie les cellules des colonnes E et F de la même ligne et les colle en H et I de la même ligne.
 

JNP

XLDnaute Barbatruc
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

Bonjour le fil :)
S'amuser à couper des cellules 3 par 3 sur toutes les colonnes, je n'en vois pas l'intérêt... :eek:
Il suffit de supprimer les 3 cellules à gauche de la ligne pour que toute la ligne se décale de 3 cellules... :rolleyes:
Code:
Range("K1:M1").Delete Shift:=xlToLeft
Bonne suite :)
 

Misange

XLDnaute Barbatruc
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

Coucou Jean Noel

Et si tes cellules supprimées contiennent des trucs qui t'intéressent :)

Mais bon comme je ne suis pas sure d'avoir bien compris la question initiale, nous verrons bien ce que souhaite le demandeur.
Ca m'a en tous cas permis de réviser mes "items" :) et du coup j'ai rajouté ma proposition sur la page d'excelabo citée par Amigos
 

Misange

XLDnaute Barbatruc
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

Exact c'est couper coller pas copier coller mais c'est quand même coller :) une fois que tu les as délétées... tu n'as plus grand chose à coller !
En tous cas le coup de je dois répéter cela toutes les colonnes/3... c'est la fin de l'année, le champagne ne m'a pas encore embrumé le neurone mais quand même j'ai du mal !
 

Misange

XLDnaute Barbatruc
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

PAs convaincue car justement le code fourni par Amigos ne fait pas ce qu'il souhaite mais surtout j'aimerais bien que le demandeur se manifeste !!
Bonnes bulles et bonnes photos à toi aussi.
 

Si...

XLDnaute Barbatruc
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

salut

pour quelques bulles de plus ...;)

pas aussi simple (pour moi) qu'il n'y parait :confused: !
Décalages.jpg
 

Amigos

XLDnaute Nouveau
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

Bonsoir Désolé de mon retard ,
Tout d'abord Misange merci pour votre site, merci à Jean Noel et à SI merci de votre aide

En fait l'objectif est de transformer une ligne de données à autant de lignes et au lieu d'aller jusqu'à la colonne" AT", de recopier toujours sur les colonnes de K à M

Ici le tableau allant jusqu'à AT, démarrant à K , 36 colonnes /3 = 12 , mais la ligne 1 existe je dis d'insérer donc 11 lignes et
l'enregistrement de macro me donne le code ci dessous,

en voyant votre dossier je me suis dis que j'y arriverais mais je génère une erreur 10004

l'objectif je vais prendre N10:p10, et le coller en K11:M11
je remonte à Q10:S10 et de le coller en K12:M12 mais j'aurais souhaité utiliser en référence relative
et on continue jusqu" à AR10:AT10 et de le coller en K22:M22

j espere que c'est plus clair, sincèrement merci


J espère que c'est un peu plus clair
 

Misange

XLDnaute Barbatruc
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

Bonsoir
non seulement ce n'est pas plus clair mais c'est encore plus embrouillé.
Au lieu de décrire tout ça, pourquoi ne pas suivre les conseils donnés quand on pose une question ici, à savoir : poster un petit classeur exemple montrant la situation de départ et celle souhaitée à l'arrivée.
 

Amigos

XLDnaute Nouveau
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

Bonjour Misange,

Désolé pour le fichier le voici, j'avais fermé la fenêtre sans le joindre :rolleyes:

je vous suis reconnaissante pour votre patience

Bonne journée
 

Pièces jointes

  • PlanningPrev.xlsm
    93 KB · Affichages: 63
  • PlanningPrev.xlsm
    93 KB · Affichages: 53
  • PlanningPrev.xlsm
    93 KB · Affichages: 53

JNP

XLDnaute Barbatruc
Re : VBA demande pour optimisation de code pour couper et coller dans même onglet

Re :)
A tester :
Code:
Sub test()
Dim DerLigne As Integer, DerColonne As Integer
Dim I As Integer, J As Integer
Application.ScreenUpdating = False
DerLigne = Range("A" & Cells.Rows.Count).End(xlUp).Row
DerColonne = Cells(9, Cells.Columns.Count).End(xlToLeft).Column
For I = DerLigne To 10 Step -1
    For J = DerColonne To 13 Step -3
        If Cells(I, J) <> "" Then
            If Cells(I, 13) <> "" Then
                Rows(I).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                Range(Cells(I + 1, 1), Cells(I + 1, DerColonne)).Copy Range(Cells(I, 1), Cells(I, DerColonne))
            End If
            Range(Cells(I, J - 2), Cells(I, J)).Copy Range(Cells(I, 11), Cells(I, 13))
        End If
    Next J
Next I
Application.ScreenUpdating = True
End Sub
Bonne suite :)
 

Discussions similaires