VBA macro déplacement de cellule en mauvaise colonne

bonjour

je voudrais actionnée cette macro sur la colonne B mais il me prend toujours la colonne D comment faire
sur tout les Feuil du classeur .

si vous pouvais m'aider

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

Dim b As Long, Mot As String

Mot = "0"

With Sheets("Feuil1")
    For b = 2 To Range("B65536").End(xlUp).Row
        If .Cells(b, 4).Value Like "*" & Mot & "*" Then
              .Cells(b - 1, 5).Value = .Cells(b - 1, 5).Value & " " & .Cells(b, 4).Value '(rajoute a la ligne du dessus  et de coter)
           ' .Cells(b, 4).ClearContents 'Suppression contenu cellule
        End If

    Next b
    MsgBox "fin"
End With

End Sub

Bonjour Gabriel,

Utilisez Range plutôt que Cells

De plus drôle de façon de nommer votre variable de ligne, meilleur façon de se tromper

Dim Lig as Long
....
 If .Range("B" & Lig).Value Like "*" & Mot & "*" Then
...

A+

merci de ton aide
j'ai remplace se que vous m'avais dit et ça me mais un code erreur

Re,

Oui mais encore, quel message d'erreur sur quelle ligne

désoler je me suis mal exprimer :(

des que je remplace .Cells par .Range ca me fait un code d'erreur

Ca me fait toujours sur la colonne D

je sais cibler une feuille mais pas tous .

merci de ton aide :)

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

Dim Lig As Long, Mot As String

Mot = "0"

With Sheets("Feuil1")
    For Lig = 2 To .Range("B" & Rows.Count).End(xlUp).Row
        'If .Cells(Lig, 4).Value Like "*" & Mot & "*" Then
         If .Range("B" & Lig).Value Like "*" & Mot & "*" Then
              .Cells(Lig - 1, 5).Value = .Cells(Lig - 1, 5).Value & " " & .Cells(Lig, 4).Value '(rajoute a la ligne du dessus  et de coter)
           ' .Cells(b, 4).ClearContents 'Suppression contenu cellule
        End If

    Next Lig
    MsgBox "fin"
End With

End Sub

Bonjour Gabriel, bonjour le forum,

Il y a deux manières de désigner un cellule (ou plage). Range et l'adresse de la cellule : Range("A1"), ou Cells et l'adresse Ligne/Colonne : Cells(1, 1).

Tu utilise Cells mais avec la colonne 4 (soit D). Ton code modifié en tenant compte de la remarque de Bruno :

Sub deplace()
Dim LI As Long, Mot As String

Mot = "0"
With Sheets("Feuil1")
    For LI = 2 To Range("B65536").End(xlUp).Row
        If .Cells(LI, 2).Value Like "*" & Mot & "*" Then
            .Cells(LI - 1, 2).Value = .Cells(LI - 1, 2).Value & " " & .Cells(LI, 2).Value '(rajoute a la ligne du dessus  et de coter)
            ' .Cells(LI, 2).ClearContents 'Suppression contenu cellule
        End If
    Next LI
    MsgBox "fin"
End With
End Sub

Salut ThauThème

Petit clin d'oeil... tu sais, nous ne somme plus au 65536 lignes

For LI = 2 To Range("B65536").End(xlUp).Row

A+

merci le code marche mais j’aimerai bien comprendre l'erreur pour pas la refaire .

si je comprend bien:

Range ("A") c'est pour la colonne en entier

Cells c'est le positionnement de la cellule

c'est bien ca

merci a vous deux pour votre aide :)

Re,

Non, Range ne peut pas s'utiliser avec juste 1 lettre, c'est forcément accompagné du numéro de ligne

Range("B" & Lig)

Ou d'une de la lettre d'une autre colonne pour désigner un ensemble de colonnes entières

A+

je viens de comprendre merci beaucoup :)

Rechercher des sujets similaires à "vba macro deplacement mauvaise colonne"