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

  • Initiateur de la discussion Initiateur de la discussion James Dean
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

James Dean

Guest
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 !
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
807
Retour