Supprimer certaines cellules d'une ligne

tutur09 Messages postés 25 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

J'ai créé une Macro afin d'ajouter plusieurs lignes à différents endroit mais j'ai besoin de supprimer les deux premières cellules de ces lignes ajoutées.

Voici ma Macro :

Private Sub CommandButton3_Click()
ligne = InputBox("N°Ligne", "Ajouter une Tâche")
For i = 0 To Range("C1").Value - 1 + Range("J2").Value
Rows(ligne + 1).Offset(i * 78).Offset(i).Insert Shift:=x1Down
Next i
For i = Range("C1").Value - 1 + Range("J2").Value To 0 Step -1
Range("A" & ligne + 1, "B" & ligne + 1).Offset(i * 78).Offset(i).Delete Shift:=x1Up
Next i

Merci d'avance pour votre aide

7 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Difficile de décripter ta macro.
    Peux tu envoyer un bout de ton fichier, sur cjoint.com et joindre le lien obtenu à ton prochain message.
    N'oublies pas d'y ajouter des explications et des exemples de résultat attendu

    1) Tu vas dans https://www.cjoint.com/
    2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
    3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
    4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
    en bleu souligné ; tu le sélectionnes et tu fais "Copier"
    5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
    tu fais "Coller".

    Cdlmnt
    0
    1. tutur09 Messages postés 25 Statut Membre
       
      Bonjour,

      Je vais tenter d'être plus précis. J'ai une macro qui me permet de rajouter des lignes à espacement régulier en masse juste en cliquant sur un bouton.

      Private Sub CommandButton3_Click()
      ligne = InputBox("N°Ligne", "Ajouter une Tâche") #Je choisis la ligne à rajouter
      For i = 0 To 100
      Rows(ligne + 1).Offset(i * 78).Insert Shift:=x1Down #J'ajoute les lignes à espacement régulier en fonction de la ligne choisie
      Next i

      Après cela, j'aimerais supprimer les deux première cellule de chaque ligne rajoutée unsiquement. Je sais que je dois commencer par la fin afin de supprimer des lignes avec une boucle comme cela mais je ne trouve pas mon erreur dans le code suivant :

      For i = 100 To 0 Step -1
      Range("A" & ligne + 1, "B" & ligne + 1).Offset(i * 78).Delete Shift:=x1Up
      Next i

      Merci pour votre aide
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Pour effacer ou supprimer les deux premières cellules d'une plage de lignes, tu peux commencer par la première et en descedants

    ' efface les contenus des deux premières cellules
    Public Sub OK1()
    Dim li As Long
    For li = 3 To 6
    Range("A" & li & ":" & "B" & li).ClearContents
    Next li
    End Sub

    ' supprime les deux premières cellules et décale vers la gauche les suivantes
    Public Sub OK2()
    Dim li As Long
    For li = 13 To 16
    Range("A" & li & ":" & "B" & li).Delete shift:=xlToLeft
    Next li
    End Sub

    Cdlmnt
    0
    1. tutur09 Messages postés 25 Statut Membre
       
      Bonjour,

      Merci pour votre aide mais malheureusement cela ne fonctionne pas :/
      Auriez vous une autre idée ?

      Merci
      0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Oui !

    Peux tu envoyer la partie concernée de ton fichier, sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu

    1) Tu vas dans https://www.cjoint.com/
    2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
    3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
    4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
    en bleu souligné ; tu le sélectionnes et tu fais "Copier"
    5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
    tu fais "Coller".

    Cdlmnt
    0
  4. tutur09 Messages postés 25 Statut Membre
     
    https://www.cjoint.com/c/FDlucCoKlfA

    Voici le lien de mon fichier.

    J'aimerais pouvoir supprimer juste les deux premières cellules des lignes que je rajoute et remonter toutes les valeurs du dessous vers le haut.
    Je ne vois pas bien ce qui ne fonctionne pas dans mon code.

    Merci pour votre aide,

    Cordialement,
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Je ne vois toujours pas bien ce que tu veux faire, mais pour
    - supprimer les deux premières cellules de la ligne li
    - les remplacer par les deux cellules situées en dessous
    Range("A" & li & ":" & "B" & li).Delete shift:=xlUp

    Cdlmnt
    0
  7. tutur09 Messages postés 25 Statut Membre
     
    Bonjour,

    Cela ne fonctionne pas. J'avais déjà essayé cette fonction "Range("A" & li & ":" & "B" & li).Delete shift:=xlUp" mais cela me renvoi une erreur.

    Il y a un problème avec le Range().Delete. J'arrive à supprimer une ligne entière mais pas uniquement les deux premières cellules...

    Merci pour votre aide en tout cas,

    Cordialement,
    0
  8. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Il y a un problème avec le Range().Delete. J'arrive à supprimer une ligne entière mais pas uniquement les deux premières cellules... ?
    http://www.cjoint.com/c/FDmpCSjaT0q

    Cdlmnt
    0