Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

insérer lignes si critères [Résolu]

  • Initiateur de la discussion Initiateur de la discussion fenec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

fenec

XLDnaute Impliqué
Bonjour le forum,

Comme le dis le titre je voudrais insérer une ligne si les critères sont remplie.
Je ne sais si tout est clair alors vous joint un fichier

Cordialement

Philippe
 

Pièces jointes

Dernière édition:
Re : insérer lignes si critères

Bonjour fenec,

Fichier (4) avec cette macro :

Code:
Sub Insereligne()
Dim code, c, cel As Range
code = Array("D712", "D727") 'les codes à traiter
Application.ScreenUpdating = False
For Each c In code
  Set cel = [B:B].Find(c, , xlValues, xlWhole, , xlPrevious)
  If Not cel Is Nothing Then
    cel(2).Resize(, 4).Insert xlDown
    cel(2) = c
    cel(2, 2) = DateSerial(Year(cel(1, 2)) + 1, Month(cel(1, 2)), Day(cel(1, 2)))
    cel(2, 3) = DateSerial(Year(cel(1, 3)) + 1, Month(cel(1, 3)), Day(cel(1, 3)))
    cel(2, 4) = cel(1, 4) + 1
  End If
Next
End Sub
Effectivement il n'y a pas besoin de formules en colonne E.

A+
 

Pièces jointes

Re : insérer lignes si critères

Re, le forum, Job75

Venant de tester, j'ai d'abord cherché à comprendre ton code pour l'ajuster à mon tableau mais je pense m'avoir mal exprimé.

En effet avec l'insertion tu remplaces les formules par leurs valeurs.
Dans la 1er partie du tableau cela me convient "Colonne (B:G)", pour la mise à jour des dates.
Dans la 2ème j'aurais souhaité l'inverse, garder les formules et n'avoir que les valeurs dans les lignes précédentes.

Je pense qu'il faudrait un mix des deux:
J'essaie en vain depuis tout à l'heure mais n'y parviens pas.

Te joint un fichier comme je vois les choses.
J'ai essayé d'être le plus précis possible.

D'avance merci et pardonne moi si j'abuse.

Cordialement.

Philippe
 

Pièces jointes

Re : insérer lignes si critères

Bonsoir Job75,

Pardonnez moi d'avoir laisser passer le week end avant de revenir,j e sais que chacun à une vie de famille et je respecte les week-end de chacun bien que moi je travaillais.
Néanmoins merci de votre aide je vais essayer de m'en sortir seul.
Excusez moi pour avoir abuser de votre temps la prochaine fois que je fais une demande j'essaierais d'être précis dès le départ
A+
 
Dernière édition:
Re : insérer lignes si critères

Bonsoir le forum

Petit up à qui voudrais bien m'aider vu que Job75 ne désire plus poursuivre

Dans ma derniere demande à Job, je suis parvenue à résoudre le 1er point, reste le deuxième.

Vous joint mon fichier avec mon avancé

Cordialement à qui veux bien me venir en aide

Philippe

PS: Encore un grand merci à Job75 pour l'aide et le temps qu'il m'a accordé.
 

Pièces jointes

Re : insérer lignes si critères

Bonjour fenec, le forum,

Malgré vos formules tordues je ne vais pas vous laisser mariner plus longtemps, voyez ceci :

Code:
Sub Insereligne()
Dim code, c, cel As Range
code = Array("D712", "D727") 'les codes à traiter
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des formules de liaison tordues...
For Each c In code
  Set cel = [B:B].Find(c, , xlValues, xlWhole, , xlPrevious)
  If Not cel Is Nothing Then
    cel(2).Resize(, 12).Insert xlDown
    cel.Resize(, 12).Copy cel(2)
    cel.Resize(, 12) = cel.Resize(, 12).Value 'supprime les formules
    cel(2, 4) = DateSerial(Year(cel(2, 4)) + 1, Month(cel(2, 4)), Day(cel(2, 4)))
    cel(2, 5) = DateSerial(Year(cel(2, 5)) + 1, Month(cel(2, 5)), Day(cel(2, 5)))
  End If
Next
End Sub
Fichier (5).

A+
 

Pièces jointes

Re : insérer lignes si critères

Re,

Avec DateAdd c'est plus simple pour incrémenter les dates :

Code:
Sub Insereligne()
Dim code, c, cel As Range
code = Array("D712", "D727") 'les codes à traiter
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des formules de liaison tordues...
For Each c In code
  Set cel = [B:B].Find(c, , xlValues, xlWhole, , xlPrevious)
  If Not cel Is Nothing Then
    cel(2).Resize(, 12).Insert xlDown
    cel.Resize(, 12).Copy cel(2)
    cel.Resize(, 12) = cel.Resize(, 12).Value 'supprime les formules
    cel(2, 4) = DateAdd("yyyy", 1, cel(2, 4))
    cel(2, 5) = DateAdd("yyyy", 1, cel(2, 5))
  End If
Next
End Sub
Fichier (5 bis)

A+
 

Pièces jointes

Re : insérer lignes si critères

Bonjour le forum, Job75

Déjà un grand merci pour avoir décidé de continuer à m’aider.

Ayant pris le temps de tester vos deux solutions dans mon fichier final, je n’ai rien à rajouté si ce n’est bravo.
C’est exactement ce que je souhaitais obtenir.
Il est vrai que mes formules sont tordues comme vous dites, mais je n’ai rien trouvé de plus simple et comme ce n’est qu’un fichier exemple pas facile de comprendre sans voir les liaisons.

Encore merci pour votre temps et votre patience vu mes demandes de plus en plus compliquées après chaque solution que vous n’ayez proposé.

Cordialement

Philippe

PS : Vous joindrais bien mon fichier en PV mais je ne sais comment faire.
 
Re : insérer lignes si critères

Bonjour,

J'ai repris cette discution très intéressante car j'ai un projet similaire qui consiste à chaque donnée identifiée D712; D727 d'insérer une ligne supplémentaire par contre mon nombre de lignes en colonne B est indéfini
Avez vous une idée SVP
Merci, d'avance
A+
 

Pièces jointes

Re : insérer lignes si critères [Résolu]

Bonjour BRUNO62,

Puisqu'il ne s'agit pas du même problème ouvrez une nouvelle discussion.

En joignant votre fichier avec la situation actuelle et le résultat attendu.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
279
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
223
Réponses
2
Affichages
152
Réponses
4
Affichages
224
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…