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

insertion automatique de ligne et remplissage selon recherche H sur autre feuille

  • Initiateur de la discussion Initiateur de la discussion draale
  • 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 !

D

draale

Guest
Bonjour suite à réflexion et grace à vos formules j'ai decellé des problèmes dans mon fichier qui empêchait de faire ainsi.

Ma demande finale figure donc en bas de ce message.

Au plaisir de vous lire.
 

Pièces jointes

Dernière modification par un modérateur:
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Bonjour draale,

Dans le code de Feuil2 :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B2:B65536]) Is Nothing _
  Or Target.Count > 1 Then Exit Sub
Dim lig As Variant
With Feuil1 'CodeName
  lig = Application.Match(Target, .[B:B], 0)
  If IsNumeric(lig) And UCase(Target.Offset(-1, 3)) <> "X" Then
    Target.EntireRow.Insert
    Target.Offset(-1, 3) = "X" 'repérage
    Target.Offset(-1, -1).Resize(, 4) = .Cells(lig - 1, 1).Resize(, 4).Value
  End If
End With
End Sub
Fichier joint.

A+
 

Pièces jointes

Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Merci mais je ne comprend pas, j'ai regardé le tableau je ne vois aucune modification a part "valider une cellule en colonne B" ni aucune formule ni macro 😉
Ce que je veux faire c'est une macro.
Merci de m'éclairer et merci pour ta réponse 🙂
 
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Re,

Ce que je veux faire c'est une macro.

Vous l'avez cher ami 🙂

Clic droit sur l'onglet Feuil2 et Visualiser le code.

La macro se déclenche quand on renseigne (ou valide) une cellule en colonne B.

Par exemple en Feuil2 sélectionnez B15, clic dans la barre de formule et touche <Entrée>.

A+
 
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Re,

Mais peut-être préférez-vous traiter toutes les cellules en même temps.

Dans ce cas clic sur le bouton qui déclenche cette macro :

Code:
Private Sub CommandButton1_Click()
Dim Target As Range, lig As Variant
For Each Target In Range("B2", [B65536].End(xlUp))
  With Feuil1 'CodeName
    lig = Application.Match(Target, .[B:B], 0)
    If IsNumeric(lig) And UCase(Target.Offset(-1, 3)) <> "X" Then
      Target.EntireRow.Insert
      Target.Offset(-1, 3) = "X" 'repérage
      Target.Offset(-1, -1).Resize(, 4) = .Cells(lig - 1, 1).Resize(, 4).Value
    End If
  End With
Next
End Sub
Fichier (2).

A+
 

Pièces jointes

Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Re,

2 compléments, le 1er pour accélérer s'il y a beaucoup de lignes à traiter :

Code:
Application.ScreenUpdating = False 'fige l'écran
le 2ème si l'on aboutit à la valeur placée en Feuil1!B2 :

Code:
If lig > 2 Then
Fichier (3)

A+
 

Pièces jointes

Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Je viens de test je dois dire je suis carrément impressionné par ton code la.
le problème c'est que c'est un peu trop chaud pour moi de capter. je vais me contenter d'appuyer sur le bouton 🙂

Je teste tout ca en live demain sur mon gros fichier et te fait un retour definitif 🙂
 
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

j'ai pas pu m'empecher de faire des essai il faut que je te précise une chose, en fait sur mon vrai fichier il y a beaucoup plus de colonne et je n'arrive pas a trouver dans la formule comment faire pour que cela se fasse sur toute les colonnes.

Pourrais tu m'aider ? merci encore.
 
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Bonjour draale, le forum,

comment faire pour que cela se fasse sur toute les colonnes.

Il faut qu'il y ait des en-têtes de colonnes en ligne 1 de Feuil1.

La macro peut ainsi déterminer le nombre de colonnes :

Code:
Private Sub CommandButton1_Click()
Dim N As Integer, Target As Range, lig As Variant
Application.ScreenUpdating = False 'fige l'écran
With Feuil1 'CodeName
  N = .Cells(1, .Columns.Count).End(xlToLeft).Column 'nombre de colonnes
  For Each Target In Range("B2", Cells(Rows.Count, 2).End(xlUp))
    lig = Application.Match(Target, .[B:B], 0)
    If IsNumeric(lig) And UCase(Target.Offset(-1, N - 1)) <> "X" Then
      If lig > 2 Then
        Target.EntireRow.Insert
        Target.Offset(-1, N - 1) = "X" 'repérage
        Target.Offset(-1, -1).Resize(, N) = .Cells(lig - 1, 1).Resize(, N).Value
      End If
    End If
  Next
End With
End Sub
Fichier (4).

A+
 

Pièces jointes

Dernière édition:
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Re,

Une version (5) peut-être meilleure.

Le repérage des lignes copiées se fait d'abord en Feuil1.

Une ligne déjà copiée ne peut plus être copiée.

Ne pas oublier de mettre l'en-tête de colonne en E1 de Feuil1.

Code:
Private Sub CommandButton1_Click()
Dim N As Integer, Target As Range, lig As Variant
Application.ScreenUpdating = False 'fige l'écran
With Feuil1 'CodeName
  N = .Cells(1, .Columns.Count).End(xlToLeft).Column 'nombre de colonnes
  For Each Target In Range("B2", Cells(Rows.Count, 2).End(xlUp))
    lig = Application.Match(Target, .[B:B], 0)
    If IsNumeric(lig) Then
      If lig > 2 And UCase(.Cells(lig - 1, N)) <> "X" Then
        Target.EntireRow.Insert
        .Cells(lig - 1, N) .Resize(2) = "X" 'repérage des 2 lignes
        Target.Offset(-1, -1).Resize(, N) = .Cells(lig - 1, 1).Resize(, N).Value
      End If
    End If
  Next
End With
End Sub
A+
 

Pièces jointes

Dernière édition:
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Effectivement ça marche je t'avouerai que je n'arrive pas à comprendre ton code, par contre je te remercie je vais tester cela en live.
C'est en voyant ce genre de code que je me dis que je suis loin d'être bon sous excel^^.

Merci et je te ferai un retour définitif une fois testé sur le fichier géant 🙂
 
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Re,

J'ai légèrement modifié le fichier (5) du post #11 (repérage des 2 lignes en Feuil1).

Utilisez la dernière macro.

A+
 
Re : insertion automatique de ligne et remplissage selon recherche H sur autre feuill

Merci pour votre aide, vraiment.
Aussi vu ce que vous arrivez à faire, j'aurai une autre demande plus simple pour moi car hélas la macro me fait des incohérences sur mon vrai fichier.

Sur l'exemple que je vous fourni j'ai appliqué un filtre sur la colonne N pour n'afficher que les valeurs 1.

Du coup toutes les autres lignes se retrouvent masquées bien sur.
Je souhaiterai que la macro m'affiche seulement la ligne qu'il y avait au dessus et pas les autres.
Ainsi je suis sur d'arriver au bon résultat.
Si on peut faire ainsi cela me simplifie la tâche en fin de compte et collera à tous mes cas de figure.

Encore merci.
 

Pièces jointes

- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
11
Affichages
1 K
macca
M
P
Réponses
6
Affichages
2 K
Pat13127
P
A
Réponses
11
Affichages
2 K
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…