ForulE EXCEL

Fermé
o-sixty-o Messages postés 25 Date d'inscription jeudi 31 janvier 2008 Statut Membre Dernière intervention 6 novembre 2008 - 3 mars 2008 à 00:12
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 3 mars 2008 à 08:03
Bonsoir,
J'ai besoin de vous !

J'ai une commande dans vb qui permet de supprimer et d'ajouter des lignes sur excel. Mais j'aimerais que, dès qu'on arrive à la ligne 13 ça ne supprime plus de lignes mais ça efface juste la valeur qu'il y a à l'intérieur !! donc si j<13 effacer juste les valeurs dans les lignes ( et non pas supprimer !)

voila...
A voir également:

3 réponses

LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
3 mars 2008 à 00:14
Poste le module qui existe déjà, qu'on puisse juste le modifier sans tout bouleverser!
0
o-sixty-o Messages postés 25 Date d'inscription jeudi 31 janvier 2008 Statut Membre Dernière intervention 6 novembre 2008
3 mars 2008 à 00:35
Bon j'ai envoyé la feuille excel pour que tu comprennes mieux... Enfaite j'ai une listebox sur vb et lorsque je sélectionne un ou plusieurs élément , ce que je sélectionne va se mettre soit ds "REALISATION" "ou 'DOCUMENTATION" donc si ya plus de 2 choix tu comprend bien que ça ajoute une ligne automatiquement ! Ensuite après avoir ajouté ce que je veus , je veus pouvoir supprimer ! donc j'ai réussi . Mais seulement je veus toujours qu'il reste o minimum 2lignes ds Réalisation , Support et Documentation ( partout quoi ! ) donc il faut trouver une formule qui supprime juste à temps qu'il reste que 2 lignes ( et si il reste que 2 lignes il faut que les valeurs ds les lignes soient donc EFFAcées , si on clique sur supprimer ! )

voici le code pour le clique ajouter une ligne :

rivate Sub CmdAjouter1_Click()
Dim i As Integer
Dim j As Integer
Dim first As Integer
Dim last As Integer

With ListBox1
For i = 0 To .ListCount - 1

If .Selected(i) Then
first = determineWhereToWrite(.List(i))
j = first
last = LastLine(j)

Do While Worksheets("EstimChargeSSE-CTP").Range("C" & j).Value <> ""
j = j + 1
Loop

If Not doesExist(first, last, .List(i), "DU EMULATOR") Then
If j > last Then
Worksheets("EstimChargeSSE-CTP").Cells(j, 1).EntireRow.Insert
Worksheets("EstimChargeSSE-CTP").Range("F" & j).FillDown
updateIndexAdd (last)
End If
Worksheets("EstimChargeSSE-CTP").Range("B" & j).Value = "DU EMULATOR"
Worksheets("EstimChargeSSE-CTP").Range("C" & j).Value = .List(i)
Worksheets("EstimChargeSSE-CTP").Range("E" & j).Value = ReturnNbJour(.List(i))

End If
End If
Next
End With

End Sub



ET celui pour supprimer :

Private Sub cmdSupprimer1_Click()
Dim i As Integer
Dim j As Integer
Dim first As Integer
Dim last As Integer

With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then

first = determineWhereToWrite(.List(i))
j = first
last = LastLine(j)

Do While Worksheets("EstimChargeSSE-CTP").Range("C" & j).Value <> ""

If Worksheets("EstimChargeSSE-CTP").Range("C" & j).Value = .List(i) Then
Worksheets("EstimChargeSSE-CTP").Cells(j, 1).EntireRow.Delete
updateIndexDelete (last)
' Else
' If j < 12 Then
' If Worksheets("EstimChargeSSE-CTP").Range("C" & j).Value = .List(i) Then
' Worksheets("EstimChargeSSE-CTP").Cells(j, 1).EntireRow.ClearContents
' End If
' End If
End If


j = j + 1
Loop
End If

Next
End With
End Sub



miss_O_sixty@hotmail.com si ta rien compris lol
0
o-sixty-o Messages postés 25 Date d'inscription jeudi 31 janvier 2008 Statut Membre Dernière intervention 6 novembre 2008
3 mars 2008 à 00:36
je n'arrive pas à envoyer mon fichier :s
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
3 mars 2008 à 08:03
bonjour

En changeant cette partie, cela devrait te donner satisfaction
If Worksheets("EstimChargeSSE-CTP").Range("C" & j).Value = .List(i) Then

   If j < 12 Then
     Worksheets("EstimChargeSSE-CTP").Cells(j, 1).EntireRow.ClearContents
   Else
     Worksheets("EstimChargeSSE-CTP").Cells(j, 1).EntireRow.Delete
'     updateIndexDelete (last) ' enlever la mise en commentaire si tu ne veux que les suppressions
   End If
'   updateIndexDelete (last)  ' enlever la mise en commentaire si tu  veux toutes les modifications
End If
0