Suppression automatisée dynamique

Bonjour à tous,

Me voilà de retour avec une nouvelle problématique :

1- Lors de mon import depuis un fichier source (que je ne peux pas vous joindre malheureusement) dans mon fichier ci-joint dans l'onglet "Data 2", je souhaite intégrer dans mon code une détection et une suppression des lignes vides en fonction d'une colonne (Facile me direz-vous). J'ai donc codé sur le fichier ci-joint, fais attention de n'importer que des valeurs et non des formules, et pourtant celui-ci ne fonctionne pas.... En résumé, après avoir importé mes données, il faut que pour chaque cellule vide en colonne A, il supprime la ligne associée. Je vous joins mon fichier pour mieux visualiser (mon code est dedans).

2- Après avoir supprimé les lignes vides, un copier-coller sera fait dans mon onglet Data 3 pour un rajout d'info (ça c'est déjà codé) or en dernier, dans mon onglet synthèse qui recensera tout mes imports, il faudrait que le code détecte la première ligne non vide dans la colonne G (seule colonne ou je suis sûr d'avoir une info) et qu'il copie-colle les valeurs de Data 3.

La finalité de tout ce process est la création d'indicateurs via un DashBoard pour le travail. Cela me permettra de suivre notre efficacité de chiffrage, de taux de transformation, de CA etc....

Merci à vous,

Florian :)

7fichier-recap.xlsm (276.65 Ko)

Bonjour,

Pour trouver votre dernière utilisée dans l'onglet synthèse on utilise une variable que l'on déclare en nombre :

Dim derligne As Long
derligne = Worksheets("Synthèse").Range("G65536").End(xlUp).Row + 1

ensuite vous pouvez utiliser : derligne pour comme numéro pour coller votre copie.

Bonjour Xmenpl,

Merci je vais tester ça !

Du coup, une fois la variable derligne complétée, il faut que je l'incorpore dans Worksheets("Synthèse").Range(A & derligne).Paste Special ??

Bonjour Xmenpl,

Merci je vais tester ça !

Du coup, une fois la variable derligne complétée, il faut que je l'incorpore dans Worksheets("Synthèse").Range(A & derligne).Paste Special ??

Non pourquoi dans le worksheets synthèse ? à quel moment tu lances la copie de l'onglet data3 vers synthése ?

Soit tu mets à la suite de ton code d'import ?

Soit tu fais une nouvelle macro pour pour lancer manuellement la sauvegarde des infos de Data3 vers synthèse :

Par ailleurs pas besoin d'utiliser l'option copy et past pour dire qu'une plage est égale à une autre.

juste çà celà suffit :

Sub Macro1()

Dim derligne As Long
derligne = Worksheets("Synthèse").Range("G65536").End(xlUp).Row + 1
Worksheets("Synthèse").Range("A" & derligne & ":BD" & derligne + 500).Value = Worksheets("Data 3").Range("A2:BD500").Value

End Sub

ps j'ai utilisé la méme limite de ligne que toi pour ton onglet Data2 vers Data3 500 lignes

Ok, super ça marche ! Merci.

Point n°2 traité !!

Point n°1, sais-tu pourquoi ma suppression automatique de ligne ne fonctionne pas dans mon code ??

Up svp

Up svp

Oops j'avais pas lu ce point

Pour supprimer des lignes vides en fonction du contenu des cellules de la colonne A dans l'onglet "Data 2"

on test la première cellule de la colonne A et on boucle autant de fois que tu as de lignes.

Public Sub Essai()

Dim i As Integer

For i = 600 To 1 Step -1
    If Worksheets("Data 2").Cells(i, 1) = "" Then Worksheets("Feuil_historique").Rows(i).Delete
Next i

End Sub

Dans l'exemple je teste sur 600 lignes puisqu'après tu fais une copie sur 500 ( donc je suppose un maximum de 100 lignes vides )

Ce chiffre sera à adapter en fonction de tes imports.

Rechercher des sujets similaires à "suppression automatisee dynamique"