fonction si vba excel

  • Initiateur de la discussion Initiateur de la discussion sonyz'
  • 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 !

S

sonyz'

Guest
Bonjour,

je suis en train de créer une macro sur excel mais je suis novice en la matière. j'ai réussi à programmer une partie de la macro mais là j'ai un souci...😡

j'ai un tableau excel contenant des numéros de cptes en colonne A, plage (A1:A400), les premières cellules sont celles dont le numero de compte est inferieur à 611000. j'ai besoin de les supprimer.

j'ai utilisé la fonction if comme suit

if range ("a2").value<611000 then
Rows("2").Select
Selection.Delete Shift:=xlUp
end if

mais en exécutant la macro, elle ne supprime qu'une fois la ligne 2, les reste des lignes ne sont pas supprimées.
comment faire pr programmer de manière à ce que la macro vérifie à chaque fois la cellule A2 et supprime la ligne si A2<611000

merci de m'aider.
 
Re : fonction si vba excel

Bonsoir,

Il faut faire une boucle sur les données allant du bas vers le haut.
Pas la peine de faire des Select
Voir le fichier joint

Code:
Sub Test()
For i = Range("A65536").End(xlUp).Row To 1 Step -1
    If Cells(i, 1).Value < 611000 Then Cells(i, 1).Delete Shift:=xlUp
Next
End Sub

Edit : Ah ! cette fois Jean Marcel tu es passé avant moi 😉
 

Pièces jointes

Dernière édition:
Re : fonction si vba excel

bonjour Sonye et bienvenue pour ce premier message,

Voici un exemple de suppression de lignes:

Code:
Sub SupprimerLignes()
Dim c As Range
Dim Lig As Long
'Aller de la ligne 400 à la ligne 1
For Lig = 400 To 1 Step -1
    With Cells(Lig, 1)
        If .Value = 611000 Then .EntireRow.Delete
    End With
Next
End Sub

A+
 
Re : fonction si vba excel

merci à tous,

mais le problm persiste tjrs!!!
je vous transmets le fichier excel (feuille 1 c'est le tableau de traitement), feuille 2 c le résultat auquel je veux parvenir.
et voici mes commandes vba

sub macro1()

Sheets("Feuil1").Select
Cells.Select
Selection.Copy
Sheets("Feuil2").Select
ActiveSheet.Paste
Cells.EntireColumn.AutoFit
Cells.EntireColumn.AutoFit
Cells.EntireColumn.AutoFit
Columns("b:c").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft

If Range("A2") < 611000 Then
Rows("2").Select
Selection.Delete Shift:=xlUp
End If
Range("A1").Select


End Sub

vs seriez tres aimables de m'aider, j'en ai besoin pr mon taf.😕

encore merci
 

Pièces jointes

Re : fonction si vba excel

Bonjour,

Il faut une boucle dans ton code.

essaie ceci :
Code:
Sub Test()
With Sheets("Feuil2")
    .Cells.Clear
    .Range("A1").Value = Sheets("Feuil1").Range("A1").Value
    .Range("B1:C1").Value = Sheets("Feuil1").Range("D1:E1").Value
    For Each X In Sheets("Feuil1").Range("A2:" & Sheets("Feuil1").Range("A65536").End(xlUp).Address)
        If X > 611000 Then
            Set Dest = .Range("A65536").End(xlUp).Offset(1, 0)
            Dest.Value = X.Value
            Dest.Offset(0, 1).Resize(1, 2).Value = X.Offset(0, 3).Resize(1, 2).Value
        End If
    Next
End With
End Sub
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
683
Réponses
4
Affichages
586
Réponses
21
Affichages
1 K
Réponses
8
Affichages
734
Réponses
37
Affichages
4 K
Réponses
10
Affichages
395
Retour