Couper / Coller plusieurs cellules en même temps

Bonjour,

Aujourd'hui je suis coincée chez moi à cause des grèves et j'en profite pour essayer d'optimiser un fichier excel dont je me sers tous les jours au travail. J'ai ainsi découvert la fonction Macro ce matin grâce au net et à ce forum que je trouve très clair.

J'ai donc réussi à créer ma première macro pour mon fichier

=> couper les lignes d'un onglet et le copier sur les copier sur un autre onglet quand les cellules d'une colonne est remplie et ça marche !!!!! Par contre je dois exécuter ma macro pour chaque ligne, j'aimerai qu'elle me coupe et colle toutes les cellules d'un coup , avec une seule exécution. Est-ce que c'est possible ?

Voici ma macro crée grâce au forum .

Sub MACROVICEVERSA()

Dim c As Range, cDest As Range

Application.ScreenUpdating = False

With ThisWorkbook

'cDest: La celllule de destination: premi?re cellule vide de la colonne A de D?placements

With .Worksheets("D?placements")

Set cDest = .Cells(.Rows.Count, "A").End(xlUp)(2)

End With

With .Worksheets("Rungis-Paris")

'on cherche LA CELLULE contenant x en colonne B de Rungis-Paris

Set c = .Range("H:H").Find("*", LookIn:=xlValues, lookat:=xlWhole)

If Not c Is Nothing Then

With c.EntireRow

'On copie toute la ligne trouv?e vers cDest

.Copy cDest

'on supprime la ligne trouv?e de Feuil1

.Delete

End With

Set c = Nothing

End If

'on vide notre variable cDest

Set cDest = Nothing

End With

End With

End Sub

Avez-vous une idée?

Merci à vous

Salut,

La sélection se fait avec la méthode range.

Je voie que tu l'utilise dans ton code mais tu lui donne une seul colonne :

Range(H:H) : sélectionne toute la colonne H

Range(H:K) = sélectionne toutes les colonnes H, I, J et K

tu peux aussi défini une plage de cellule :

Range(Cells(1,1),Cells(8,10) : La tu lui dis, tu me prend la cellule ligne 1 et colonne 1 jusqu'a la ligne 8 et colonne 10

J’espère avoir été clair ^^

Bon courage ^^

Salut BribriD,

Salut VBA_Dock38,

après interprétation de tes commentaires et codes.

Le mieux serait d'avoir un fichier, bien sûr...

'
Dim sWk As Worksheet, iRow%
'
Set sWk = Worksheets("Rungis-Paris")
Application.ScreenUpdating = False
'
With .Worksheets("Déplacements")
    For x = sWk.Range("A" & Row.Count).End(xlUp).Row To 2 Step -1
        If UCase(sWk.Range("B" & x).Value) = "X" Then
            iRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
            .Rows(iRow).Value = sWk.Rows(x).Value
            sWk.Rows(x).Delete shift:=xlUp
        End If
    Next
End With
'
Application.ScreenUpdating = True
'

A+

Bonjour à tous,

Me revoici sur la macro de mon fichier et je n'arrive à rien,

Voici mon fichier en fichier joint . Si vous avez le temps de regarder ça m'aiderait beaucoup.

Je veux donc supprimer les lignes dont les cellules de la colonne H est remplie dans l'onglet Rungis-Paris

puis coller toute la ligne dans l'onglet Déplacements Paris.

J'ai réussi à les faire une par une mais je n'arrive pas à les faire toutes d'un coup si cela est possible.

Merci et bonne fêtes à tous !

Hello,

Je tes fait ça vite fait, c'est loin d'être optimisé mais ça fonctionne.

Je tes mis un gros bouton bleu en plein milieu, tu clique dessus et ça te copiera les lignes 2 a 10 dans Déplacements Paris.

A toi de comprendre mon code pour faire en sorte qu'il prenne plus large

J'ai fait au plus simple c'est plutôt facile.

La difficulté se situera a la compréhension du tableau, tu a une explication ici : https://www.excel-pratique.com/fr/vba/tableaux_vba.php

Je reste a dispo au besoin

Merci VBA_Dock38,

Ca marche et c'est très clair, j'ai même pu agrandir la selection.

Bonne soirée !

Enjoy !

Rechercher des sujets similaires à "couper coller meme temps"