nypon
XLDnaute Nouveau
Bonsoir,
Je suis débutant en VBA mais j'ai un peu lu les tutos.
Je souhaite automatiser la copie/découpe des données d'une feuille à l'autre en fonction des enregistrements déjà présents.
Je m'explique, j'ai un dossier de travail avec trois feuilles (cf. pièces jointes).
Voici le but ultime :
Je voudrais en VBA prendre les lignes dans la feuille 1, et les copier sous les lignes de même identifiant dans la feuille 2. Mais j'ai plusieurs fois le même identifiant dans la feuille 1. Je veux donc copier les lignes de la feuille 2 d'un identifiant sous l'insertion que je viens de réaliser tant qu'il y a des données de même identifiant dans la feuille deux. ensuite, je passe au second identifiant.
Voici ce que j'ai fait pour l'instant en créant une nouvelle macro :
C'est exactement ce que je veux en résultat, mais le processus est totalement différent car je ne sais pas combien de fois j'aurais le même identifiant dans la feuille 1. Je ne connais pas non plus forcement les numéros de lignes où je dois insérer mes données.
Dans un premier temps, je voudrais pouvoir adapter ma macro pour que l'insertion des données se fasse automatiquement à la fin des "1" ou des "2" et non pas en ligne X. comment remplacer 'Rows("17:17").Select'
par 'Rows("a la fin des '1'").Select'
Je vous remercie d'avoir pris le temps de lire ce post et de m'aider si vous le souhaitez.
à très bientôt,
cordialement.
Je suis débutant en VBA mais j'ai un peu lu les tutos.
Je souhaite automatiser la copie/découpe des données d'une feuille à l'autre en fonction des enregistrements déjà présents.
Je m'explique, j'ai un dossier de travail avec trois feuilles (cf. pièces jointes).
- la première contient des régions avec un identifiant, un nom, un niveau de pluviometrie et une situation de risque
- La seconde contient les régions et leur identifiant ainsi que leurs villes
- La Troisième, le résultat que je souhaite.
Voici le but ultime :
Je voudrais en VBA prendre les lignes dans la feuille 1, et les copier sous les lignes de même identifiant dans la feuille 2. Mais j'ai plusieurs fois le même identifiant dans la feuille 1. Je veux donc copier les lignes de la feuille 2 d'un identifiant sous l'insertion que je viens de réaliser tant qu'il y a des données de même identifiant dans la feuille deux. ensuite, je passe au second identifiant.
Voici ce que j'ai fait pour l'instant en créant une nouvelle macro :
Code:
Sub Macro1()
'Macro1 enregistrée le 28/10/2009
'Selection de la Première feuille de données
'et de la ligne qui m'intéresse
'decoupe de cette ligne
Sheets("Feuil1").Select
Rows("2:2").Select
Selection.Cut
'Selection de la seconde feuille et insertion de la ligne à la ligne 24
'coloration rouge pour voir si le boulot est bien fait
Sheets("Feuil2").Select
Rows("7:7").Select
Selection.Insert Shift:=xlDown
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
'Selection du bloc de données au dessus de la ligne insérée
'et insertion du bloc sous la ligne insérée en rouge
Rows("2:6").Select
Selection.Copy
Rows("8:8").Select
Selection.Insert Shift:=xlDown
'Selection de la première feuille de données
'et de la 2eme ligne qui m'intéresse
'decoupe de cette ligne
Sheets("Feuil1").Select
Rows("3:3").Select
Application.CutCopyMode = False
Selection.Cut
'Selection de la seconde feuille et insertion de la ligne à la ligne 47
'coloration rouge pour voir si le boulot est bien fait
Sheets("Feuil2").Select
Rows("13:13").Select
Selection.Insert Shift:=xlDown
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
'Selection de la première feuille de données
'et de la 3eme ligne qui m'intéresse
'decoupe de cette ligne
Sheets("Feuil1").Select
Rows("4:4").Select
Selection.Cut
'Selection de la seconde feuille et insertion de la ligne à la ligne 62
'coloration rouge pour voir si le boulot est bien fait
Sheets("Feuil2").Select
Rows("17:17").Select
Selection.Insert Shift:=xlDown
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
Sheets("resultat").Select
Range("B20").Select
End Sub
C'est exactement ce que je veux en résultat, mais le processus est totalement différent car je ne sais pas combien de fois j'aurais le même identifiant dans la feuille 1. Je ne connais pas non plus forcement les numéros de lignes où je dois insérer mes données.
Dans un premier temps, je voudrais pouvoir adapter ma macro pour que l'insertion des données se fasse automatiquement à la fin des "1" ou des "2" et non pas en ligne X. comment remplacer 'Rows("17:17").Select'
par 'Rows("a la fin des '1'").Select'
Je vous remercie d'avoir pris le temps de lire ce post et de m'aider si vous le souhaitez.
à très bientôt,
cordialement.