VBA / copier coller une donnée dans une autre cellule en boucle

Bonjour

Désoler de profiter de votre gentillesse.

je voudrais réaliser une macro qui prendre le (text ) et qui me la colle dans la cellule du dessus

j'ai un problème a Cell(b)select

merci d’avance pour votre aide

Sub deplace()

Dim b As Long
Dim Cel As Range, Plage As Range
Dim Mot As String
    Set Plage = Range("B2:B200")
Mot = "text" '
    For b = b To 1 Step -1

        If Cells(b, 2).Value Like "*" & Mot & "*" Then
         cell(b).Select
         Selection.Cut Destination:=cell.Offset(1, -1)

    End If

Next b
End Sub

Bonjour

b n'a aucune valeur...

A+ François

j'avais pas fait attention je vais essayer de résoudre se soucie.

(je suis débutant )

merci pour ton aide

Bonjour,

Puisqu'on remplace le contenu de la cellule précédente, il serait judicieux de balayer les lignes dans l'ordre, et pas en partant de la dernière (step -1). Un essai :

Sub deplace()

Dim b As Long, Mot As String

Mot = "text"
With Sheets("NomFeuille")
    For b = 2 To .Range("A" & Rows.Count).End(xlUp).Row
        If .Cells(b, 2).Value Like "*" & Mot & "*" Then
            .Cells(b - 1, 2).Value = .Cells(b, 2).Value 'Report valeur dans cellule du dessus
            .Cells(b, 2).ClearContents 'Suppression contenu cellule
        End If
    Next b
End With

End Sub

merci beaucoup pour ta réponse

quand je fait le débogage ca me souligne le" With Sheets("cours4")" si tu pourrai me dire a quoi cela consiste le with .

si je comprend bien end(xlup) c'est la cellule actuellement actif ?

quand je fait le débogage ca me souligne le" With Sheets("cours4")" si tu pourrai me dire a quoi cela consiste le with .

With Objet permet d'éviter de répéter plusieurs fois un même objet sur lequel on travail, dans le cas présent une feuille. Ca pourrait aussi être un classeur, une cellule, un graphique, etc. Il faut bien t'assurer que la syntaxe de ta feuille cours4 est strictement correcte (majuscules, espaces et accents inclus).

si je comprend bien end(xlup) c'est la cellule actuellement actif ?

Non, la ligne d'instruction complète permet de reproduire l'action CTRL + FLECHE HAUT en partant de la dernière cellule du classeur (probablement cellule A1048576). Il s'agit de déterminer la dernière ligne contenant une donnée en colonne A. Voir autres exemple ici.

Merci pour c'est explication ,je viens de les noter pour pas les oublier . (je me fait des fiche )

j'ai du faire une faute en recopient comme ca me dit erreur "L'indice n'appartient pas à la sélection"

j’essaye de comprendre l'erreur mais mème en cherchant dans mais fiche je comprend pas ou est l'erreur

désoler de profiter de votre gentillesse
'A mettre en tête du module
Option Explicit
Option Compare Text
Sub deplace()

Dim b As Long, Mot As String

Mot = "test"
 With Sheets("cours4") 'me dit que le problème est la 
    For b = 2 To .Range("A" & Rows.Count).End(xlUp).Row 'permet de reproduire l'action 
        If .Cells(b, 2).Value Like "*" & Mot & "*" Then
            .Cells(b - 1, 2).Value = .Cells(b, 2).Value 'Report valeur dans cellule du dessus
            .Cells(b, 2).ClearContents 'Suppression contenu cellule
        End If
    Next b
    MsgBox "fin"
End With
End Sub
2cours4.xlsx (16.62 Ko)

Le code adapté à votre fichier exemple :

'A mettre en tête du module
Option Explicit
Sub deplace()

Dim b As Long, Mot As String

Mot = "text"
With Sheets("Feuil1")
    For b = 2 To .Range("D" & Rows.Count).End(xlUp).Row 'permet de reproduire l'action
        If .Cells(b, 4).Value Like "*" & Mot & "*" Then
            .Cells(b - 1, 4).Value = .Cells(b, 4).Value 'Report valeur dans cellule du dessus
            .Cells(b, 4).ClearContents 'Suppression contenu cellule
        End If
    Next b
    MsgBox "fin"
End With

End Sub

merci beaucoup :)

je me pose une question .
Si par exemple je veux garder le test qui a dans cellule du dessus et mètre " text" juste a coter , c'est possible . cela et t'il dur a faire ?

Si j'ai bien compris, pour compléter le contenu de la cellule, plutôt que de le remplacer :

.Cells(b - 1, 4).Value = .Cells(b - 1, 4).Value & ", " & .Cells(b, 4).Value

cette totalement ca merci beaucoup :)

bonne continuation

Rechercher des sujets similaires à "vba copier coller donnee boucle"