Copier coller cellule avec valeur negative

Signaler
Messages postés
4
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
22 mai 2009
-
Messages postés
4
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
22 mai 2009
-
bonjour étant novice en VBA
depuis je fais une ptite marcro mais elle passe pas comme je veux
sur feuille j'ai des données negatives et postive
en parcourant ma feuille je veux que les nbre négatifs soit copiés et mis sur une autre feuille
j'ai ceci

Sub EXOHERMAN()


Dim i As Integer




For i = 2 To 30


    Sheets("Feuil1").Select


Range("A1:A30").Select
For Each Cellule In Range(Cells(2, 1), Cells(30, 1))
If Cells(i, 1) < 0 Then
Sheets("Feuil3").Range(Cells(i, 1)).Value = Sheets("Feuil1").Range(Cells(i, 1)).Value cette ligne ne marche pas je c pas pk
'Cells(i, 1).Select


Selection.Copy
Sheets("Feuil4").Select
Range("A1:A30").Select
ActiveSheet.Paste



et pr celui ci il me copie juste la derniere valeur négative de la plage mais pas les autres valeurs 
End If
Next
Next i


End Sub
pouvez vs m'aider SVP merci

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Range(Cells(i, 1))

pourquoi ce Range ?
Messages postés
44
Date d'inscription
vendredi 25 janvier 2008
Statut
Membre
Dernière intervention
17 mai 2012

Hello

Remplace ton code par ceci

Sub EXOHERMAN()


    Dim i As Variant
   
    For Each i In Range("A1:A30")
        If i < 0 Then
            Sheets("Feuil4").Range("A1") = "Valeurs négatives"
            Sheets("Feuil4").Range("A" & i.Row) = i
        End If
    Next i


End Sub

Et dans la feuille 4 tu colles ceci

Private Sub Worksheet_Activate()
   
    On Error Resume Next
   
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Range("A65536").End(xlUp).Select
   
    Do
        If IsEmpty(ActiveCell) Then
            ActiveCell.EntireRow.Delete
        End If
   
    ActiveCell.Offset(-1, 0).Select
   
    Loop Until ActiveCell.Row = 1
   
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True


End Sub

Donc il va copier les valeurs négatives dans la Feuill4, puis la macro de la feuille4 supprime les lignes vides.

J'espère que ça t'aidera.

JassBass 
Messages postés
4
Date d'inscription
jeudi 18 décembre 2008
Statut
Membre
Dernière intervention
22 mai 2009

Bonjour JASS"BOOSSS"  je prefere a JassBass(lol)
voila le code j'ai juste rajouté les feuilles de destinantion
c'est énormmmmmmmmmmme ton truc MERCI MERCI MERCI BCP
ca m'a pris des moi mais je voulais trouver seul maintenant je dois chercher a comprendre ton code bein que je cprned un peu j'ai du mal avec les offset
stp peut ton rester en contact var j'ai un petit projet VBA en finance  encore mille merci

Sub souce()
'
 Dim i As Variant
 Sheets("feuil1").Select
   
    For Each i In Range("A1:A30")
        If i < 0 Then
            Sheets("Feuil3").Range("A1") = "Valeurs négatives"
            Sheets("Feuil3").Range("A" & i.Row) = i
        End If
    Next i


End Sub




 Private Sub Worksheet_Activate()
   
    'Et dans la feuille 4 tu colles ceci
Sheets("feuil3").Select
    On Error Resume Next
   
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Range("A65536").End(xlUp).Select
   
    Do
        If IsEmpty(ActiveCell) Then
            ActiveCell.EntireRow.Delete
        End If
   
    ActiveCell.Offset(-1, 0).Select
   
    Loop Until ActiveCell.Row = 1
   
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True





End Sub le bosss