Inverser toutes les valeurs d'une colonne

Résolu
colbubu -  
Breub62 Messages postés 3452 Statut Membre -
Bonjour,

c'est surement une question idiote que je vais poser je voulais savoir si il est possible de changer toutes les valeurs d'une colonne de façon à ce que les valeurs positives deviennent négatives et vice versa

merci de votre aide

PS:via VBA bien sur

6 réponses

  1. Breub62 Messages postés 3452 Statut Membre 369
     
    if(nb != 0)
    {
    nb = nb * (-1)
    }

    les nb négatifs deviennent positifs, et vice versa. Le 0 reste 0
    0
  2. colbubu
     
    je suis pas sur que c est du vba mais je vais tenter de modifier ça
    0
  3. Breub62 Messages postés 3452 Statut Membre 369
     
    Non ça n'est pas du vba mais c'est ce que tu dois faire. Multiplier tes valeurs par -1. Je sais plus la syntaxe en vba mais si tu es dessus ça ne doit pas te poser de problème majeur pour faire ça
    0
  4. colbubu
     
    exact j'ai réussi à le faire de cette façon mais il reste un bug je sais pas si ça vient de l'ordi ou moi mais voila ce que j'ai écrit
            For Each cell In Selection
            If cell.Value <> 0 Then cell.Value = cell.Value * (-1)
            Next
    


    je pense qu'il n'y a pas d'erreur mais je me retrouve dans chaque page de mon classeur a l'endroit ou je lui ai indiqué de remplacer les memes valeurs comme si il avait copier coller la premiere page dans les autres

    je vais montrer ma partie de code pour que tu comprenne mais je ne sais pas ou est l'erreur
    Do While ficha <> ""
        i = 2
        Workbooks.Open repertoire & "\" & ficha
        Range("1:8,11:38").Select
        Range("A11").Activate
        Selection.Delete Shift:=xlUp
    
        Set source = ActiveWorkbook
        Range("A1").Select
        Set a = Sheets(Replace(ficha, ".ASC", "")).UsedRange.Find("*Temps" & "*", , , xlWhole)
        Set b = Sheets(Replace(ficha, ".ASC", "")).UsedRange.Find("*FORCE" & "*", , , xlWhole)
        Set c = Sheets(Replace(ficha, ".ASC", "")).UsedRange.Find("*LVDT" & "*", , , xlWhole)
        
        
        Do Until b Is Nothing
            
            Range(Cells(3, (i - 2) * 6 + 1), Cells(3, (i - 2) * 6 + 1).End(xlDown)).Copy
            i = i + 1
            model.Activate
            If i > Sheets.Count Then Exit Do
            model.Sheets(i).Activate
            Range("B2").PasteSpecial
            
            source.Activate
            Range(Cells(3, b.Column), Cells(3, b.Column).End(xlDown)).Copy
            model.Sheets(i).Range("C2").PasteSpecial
            
            source.Activate
            Range(Cells(3, c.Column), Cells(3, c.Column).End(xlDown)).Copy
            model.Sheets(i).Range("D2").PasteSpecial
        
            model.Activate
            Sheets(i).Range(Cells(502, 2), Cells(502, 2).End(xlToRight).End(xlDown)).Delete
            
            Range("C2", Cells(2, 3).End(xlDown)).Select
            For Each cell In Selection
            If cell.Value <> 0 Then cell.Value = cell.Value * (-1)
            Next
            model.Activate
            Sheets(i).Activate
            source.Activate
            Set a = Sheets(Replace(ficha, ".ASC", "")).UsedRange.Find("*Temps" & "*", , , xlWhole)
            Set b = Sheets(Replace(ficha, ".ASC", "")).UsedRange.Find("*FORCE" & "*", , , xlWhole)
            Set c = Sheets(Replace(ficha, ".ASC", "")).UsedRange.Find("*LVDT" & "*", , , xlWhole)
    
        Loop
        source.SaveAs repertoire & "\" & Replace(ficha, ".ASC", "test.xls"), FileFormat:=xlExcel8
        source.Close savechanges = False
        model.SaveAs repertoire & "\" & Replace(ficha, ".ASC", ".xls"), FileFormat:=xlExcel8
        ficha = Dir
    
    Loop
    
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. colbubu
     
    re en fait c'est ma connerie c'est a cause du find j'ai oublié de supprimmer les valeurs qu'il avait déja trouvé
    0
  7. Breub62 Messages postés 3452 Statut Membre 369
     
    Ok. Tout va bien donc?
    0