Copier coller cellule avec valeur negative

soldick Messages postés 4 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 22 mai 2009 - 21 mai 2009 à 22:14
soldick Messages postés 4 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 22 mai 2009 - 22 mai 2009 à 11:04
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 mai 2009 à 08:58
Range(Cells(i, 1))

pourquoi ce Range ?
0
cs_antom Messages postés 44 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 17 mai 2012
22 mai 2009 à 10:33
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 
0
soldick Messages postés 4 Date d'inscription jeudi 18 décembre 2008 Statut Membre Dernière intervention 22 mai 2009
22 mai 2009 à 11:04
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
0
Rejoignez-nous