Déplacement cellule au sein d'une colonne sous condition

James Dean

XLDnaute Nouveau
Bonjour Bonsoir, je me présente : James Dean.

J'essaie de programmer la chose suivante :
- Sélectionner une colonne (colonne B dans mon cas)
- Avancer de cellule en cellule
- Si une cellule est négative, alors rien ne se passe, cellule suivante
- Si une cellule est positive, alors elle se décale sur la cellule de droite

J'ai essayé avec une boucle while mais après de nombreuses tentatives, je viens vous demander de l'aide.
Voici le début de mon code :

Sub Test_WhileWend()
Dim i As Integer

i = 2

'Boucle sur les cellules de la colonne B
'On sort de la boucle si la cellule testée est <=0
While (Cells(i, 1)) <= 0 Then ActiveCell.Offset(1, 2).Select

Wend

End Sub


Cordialement et à très vite !
 

dg62

XLDnaute Barbatruc
Peut-être me suis-je emballé un peu vite.
Mon code m'affiche erreur "13" à la ligne "test = Range("B" & i).Value".

Voici mon code en entier
VB:
Option Explicit
Sub Suivi_Bancaire()
'
'

'Supprimer la colonne moyenne de paiement
    Columns("C").Select
    Selection.ClearContents
   
' Les dernières colonnes inutiles
    Columns("H:I").Select
    Selection.ClearContents

    'Déplacer la colonne "Type de dépense"
    Columns("E:E").Select
    Selection.Cut Destination:=Columns("D:D")
    Columns("D:D").Select

'Sélection tableau
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$F$53"), , xlNo).Name = _
        "Tableau1"
    Range("Tableau1[[#Headers],[Colonne1]]").Select
    ActiveCell.FormulaR1C1 = "Date"
    Range("Tableau1[[#Headers],[Colonne2]]").Select
    ActiveCell.FormulaR1C1 = "Dépenses"
    Range("Tableau1[[#Headers],[Colonne3]]").Select
    ActiveCell.FormulaR1C1 = "Revenus"
    Range("Tableau1[[#Headers],[Colonne4]]").Select
    ActiveCell.FormulaR1C1 = "Débiteur"
    Range("Tableau1[[#Headers],[Colonne5]]").Select
    ActiveCell.FormulaR1C1 = "Types de Dépense"
     Range("Tableau1[[#Headers],[Colonne6]]").Select
    ActiveCell.FormulaR1C1 = "Types de Revenu"
    'Bonne taille des celules
    Columns("F:F").EntireColumn.AutoFit
    Columns("E:E").EntireColumn.AutoFit
    Columns("D:D").EntireColumn.AutoFit
    Columns("C:C").EntireColumn.AutoFit

' Déplacer les valeurs positives à droite
Dim derlig As Integer
Dim test As Integer
Dim i As Integer
derlig = Range("B65536").End(xlUp).Row
For i = 1 To derlig
test = Range("B" & i).Value
If test >= 0 Then
Range("C" & i) = test
Range("B" & i) = ""
End If
Next i

End Sub
Êtes vous certain d'avoir des valeurs numériques partout ?
Essayez de mettre
Dim test as variant
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87