Creation et copie de lignes

Bonjour,

J'ai fais un code permettant de creer des lignes selon les criteres d'une autre feuilles du meme classeur.

le probleme etant que les lignes créer sur cette nouvelle feuille dispose de ligne vide.

Utiliser ce fichier pour plus de comprehension :

13exemple.xlsx (19.18 Ko)

Merci

Bonjour Nioko le forum

bon alors ton problème est simple à résoudre mais il me faut des explications

tu veux supprimer les lignes vide en colonne A B C mais la colonne D on fait quoi???

1) on retire tout ce qui est remplie correspondant au lignes vide de ABC ??

2) on retire les lignes vide des colonnes ABC et on laisse la colonne D ????

ou alors quoi d'autre ???

a te relire et on va faire

a+

Papou

La colonne D n'a aucune importance, je n'en ai pas besoin

Les champs en colonne A, B et C doivent rester et ne pas etre supprimer

Autres questions ?

Re Bonjour Nioko le forum

ton fichier en retour, les macros doivent être activées

a+

papou

13nioko-v1.xlsm (26.31 Ko)

merci pour ce travail mais ce n'est pas ce que je voulais .

comme il est montré sur les images chaque lignes vide doit etre rempli lors du lancement de la macro sub_way3 et non supprimé

essayer d'adapté votre solution a mon code afin d'avoir le meilleur rendu possible

merci


le code :

Copie les 3 premieres colonnes de la feuille "Cartographie" pour ensuite les copiés dans la feuille "Analyse de risque" et création de la 4eme colonnes "Menace" :

A LANCER DANS LA FEUILLE "Cartographie"

Sub way2()

Dim cell_ori As Range
Dim cell_des As Range

Set cell_des = Worksheets("Analyse de risques").Range("A1")
With Worksheets("Cartographie")
    Set cell_ori = .Range("A1")

    For j = 0 To 3
        For i = 0 To .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row - 1
            If j <> 3 Then
                cell_des.Offset(i, j) = cell_ori.Offset(i, j)
            Else
                If i = 0 Then
                    cell_des.Offset(i, j) = "Menaces"
                End If
            End If
        Next i
    Next j
End With

End Sub

Recherche les infos de la feuille "Menaces" grace au 3 premieres lettres du type de ressource et copie de ces informations dans la feuille analyse de risque (Creation de lignes en cas de menaces multiples) :

A LANCER DANS LA FEUILLE "Analyse de risques"

Sub way3()
    Dim Sh As Worksheet, x As Long 'Declaration des variables "Sh" de type Feuille et "x" de type long
    Set Sh = Sheets("Analyse de risques") 'Donne la valeur a la variable "Sh"
    With Sheets("Analyse de risques") 'Avec la feuille "Cartographie"
        Ligne = .Cells(.Rows.Count, 2).End(xlUp).Row 'Attribut la valeur de la cellule puis incremente dans la colonne jusqu'a fin cellule
        .[D2:D2000].ClearContents 'Efface les lignes 2 à 2000 de la colonne D
        For i = .Cells(.Rows.Count, 2).End(xlUp).Row To 2 Step -1 'au bout de 2 pas faire un pas en arriere
            If .Cells(i, 2) = "" Then .Cells(i, 2).EntireRow.Delete 'si la cellule est vide alors la supprimée
        Next i 'Valeur suivante
    End With 'Fin de la feuille "Cartographie"
    With Sheets("Menaces") 'Avec la feuille "Cartographie"
        For x = Ligne To 2 Step -1 'faire varier x depuis la valeur de Ligne jusqu'à la valeur 2 en retirant 1 à chaque fois

            For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row 'Pour i etant egale a 2 jusqu'a fin cellule incrementer de 1
                var2 = .Cells(i, 1)
                If .Cells(i, 1) = Left(Sh.Cells(x, 2), 3) And Sh.Cells(x, 2).Offset(, 2) = "" Then
                    Sh.Cells(x, 2).Offset(, 2) = .Cells(i, 2)
                ElseIf .Cells(i, 1) = Left(Sh.Cells(x, 2), 3) And Sh.Cells(x, 2).Offset(, 2) <> "" Then
                    Rows(x + 1).Insert
                    Sh.Cells(x + 1, 2).Offset(, 2) = .Cells(i, 2)
                End If
            Next i
        Next x
    End With
End Sub

Re Nioko le forum

bon alors excuses moi d'avoir voulu t'aider!!!!

tu balances un fichier .xlsx sans macros donc, avec de plus, aucune explications de ce qu'il faut faire, tu demandes de supprimer les lignes vide, je fais exactement cela et oh là là, ce n'est pas cela il faut que je m'adapte à ton fichier ?????

Non mon ami, c'est à toi de savoir t’exprimer, pas à moi de deviner ce que tu veux, et surtout encore moins de deviner comment tu te serts de ton fichier, ou alors fourni les boules de cristal.

a+

papou

Dsl c'est ma faute

13exemple.xlsm (25.88 Ko)

Re Nioko le forum

bon alors on continue les devinettes!!!!!!

Maintenant on a un fichier avec des macros, toujours pas d'instructions pour se servir du fichier!!!

toujours aucune explications du résultat attendu!!!!

Bref on continue a chercher ce que tu veux faire ou plutôt nous faire faire

a+

papou

Oui je vous l'accorde tout sa n'est pas très clair bref...

mon fichier est destiné a produire une analyse de risque, la première feuille "Cartographie" présente les applis avec les ressources concernées

la feuille suivante "Ressources" décrit les différentes ressources pouvant être utilisé

la feuille "menace" présente les différentes menace pouvant subvenir sur les différentes ressources

et ensuite la feuille "analyse de risques" reprends toutes les infos des 3 précédentes feuilles

la macro Way : permet de donner un nom aux ressources de la colonne B, grâce au libellé des codes correspondant a la feuille "ressources"

La macro Way2 : permet de copié la colonne A, B, C dans la feuille "Analyse de risque" et crée une colonne Menace

Enfin la macro Way3 aura pour but de confronté chacune de ses ressources avec les différentes menaces répertorié grâce au 3 premières lettre: Ex : la ressource SRV-001 sera confronté a toutes les menace "SRV"

Mon problème :

Lors du lancement de la macro way3 : des lignes sont crée pour chaque type de menace ce qui est tres bien seulement la ligne crée laisse 3 cellules vides a chaque nouvelle création , j'aimerais qu'elle reprenne les informations situé a la ligne du dessus et s’arrête lorsque la ligne n'est plus vide et recommence ainsi de suite

est'ce possible/compréhensible ?

Re Nioko le forum

a première vue je dirais que ton explications semble assez détaillée pour que je ré ouvre ton fichier

a+

papou

Bonjour Nioko le forum

voilà ton fichier en retour

tu cliques sur traiter et tu me redis ou sont les lignes en trop, et tu les colores en jaune et tu renvois le fichier STP

a+

papou

5nioko-v2.xlsm (37.54 Ko)

Je ne comprends pas votre message...

j'ai donc colorer les lignes qui doivent etre remplis

Ce n'est pas des lignes que je veux voir disparaitre mais je veux que les cellules soit remplis par des la ligne du dessus

Aucune suppression de doit etre faites

petite precision: lorsque l'on clic une deuxieme fois sur "traité" la solution est dupliqué autant de fois qu'on clic sur le bouton.. C'est un probleme.

5nioko-v2.xlsm (36.90 Ko)

Bonjour nioko le forum

bon alors avec le fichier rempli comme tu voulais c'est plus facile à comprendre

voilà ton fichier en retour

a+

papou

11nioko-v3.xlsm (37.02 Ko)
Rechercher des sujets similaires à "creation copie lignes"