Comment insérer ligne égale valeur cellule ?

Fermé
dede798 Messages postés 6 Date d'inscription jeudi 20 septembre 2018 Statut Membre Dernière intervention 20 septembre 2018 - 20 sept. 2018 à 00:46
dede798 Messages postés 6 Date d'inscription jeudi 20 septembre 2018 Statut Membre Dernière intervention 20 septembre 2018 - 20 sept. 2018 à 10:38
Bonjour pourriez-vous m'aider ?
Je cherche à écrire une macro me permettant d'insérer des lignes en fonction du numéro dans la cellules.
Pour être plus claire, un exemple : Dans A12 j'ai la valeur 16, je veux que ma ligne soit copier en A16.
J'ai environ 1000 lignes à traiter.

Exemple sous excel : Avant


Après



Est-ce possible ?
Merci.

1 réponse

M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 281
20 sept. 2018 à 09:49
Bonjour,

Il faudrait savoir aussi, si les lignes qui doivent être remplies, contiennent des données avec un numéro qui ne correspond pas
ex:
en A1 j'ai 12, je copie la ligne 1 pour la mettre en ligne 12, mais la cellule A12 contient déjà 14, qui devrait être déplacée
Si toutes les lignes sont remplies, le mieux est un filtrage par la colonne A
0
dede798 Messages postés 6 Date d'inscription jeudi 20 septembre 2018 Statut Membre Dernière intervention 20 septembre 2018
20 sept. 2018 à 10:03
Bonjour j'ai réussi a faire un déplacement des nombres mais je n'arrive toujours pas a déplacés le texte.
Le code pour l'instant ressemble a sa :

Sub Lecture_ligne()
'Compter le nombres de lignes
nb_lignes = WorksheetFunction.CountA(Range("A:A"))

For i = 1 To 1000
Range("A" & i).Select
n = Range("A" & i).Value
If i < n Then
Selection.Insert Shift:=xlDown
End If
Next

End Sub
0
dede798 Messages postés 6 Date d'inscription jeudi 20 septembre 2018 Statut Membre Dernière intervention 20 septembre 2018
20 sept. 2018 à 10:08
Mon code fonctionne puisque dans le fichier réel à traiter, il n'y a aucun espace entre chaque nombre. Si vous avez une solution pour que le texte ce déplace en même temps que le nombre sa serait super.
0
M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 281
20 sept. 2018 à 10:16
Re,
Si tu déplaces une ligne pour la mettre dans une autre ligne déjà remplie, tu perd ses données.
Un p’tit classeur avec 10/15 données serait mieux pour régler le soucis :yum:

Tu vas dans https://www.cjoint.com/ ou dans https://mon-partage.fr/
Tu cliques sur "PARCOURIR" pour sélectionner ton fichier
Clic le bouton "CREER LE LIEN"
Clic droit quand le lien est créé "COPIER LE LIEN"
Sur ton message Clic droit "Coller".
0
dede798 Messages postés 6 Date d'inscription jeudi 20 septembre 2018 Statut Membre Dernière intervention 20 septembre 2018 > M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023
20 sept. 2018 à 10:38
Monsieur M-12 le fichier que je doit traiter a chaque fois et toujours disposer de la même manière (nombre dans la colonne sans interligne). Et le fichier est ré-écrit toute les minutes donc des valeurs déjà écraser. Mais merci quand même une bonne étape dans mon travaille résolu :)
Le reste sera d'implanter ma macro dans le nouveau fichier implanté toutes les minutes, je pense que par un batch cela doit être possible, enfin je l'espère.
0
dede798 Messages postés 6 Date d'inscription jeudi 20 septembre 2018 Statut Membre Dernière intervention 20 septembre 2018
20 sept. 2018 à 10:20
Nouveau code il déplace le texte et les nombres, ne manque plus que à faire fonctionner la macro dès son ouverture si vous avez une idée je suis preneur.
Nouveau code :

Sub Lecture_ligne()
'Compter le nombres de lignes
nb_lignes = WorksheetFunction.CountA(Range("A:A"))

For i = 1 To 1000
n = Range("A" & i).Value
If i < n Then
Range("A" & i).Select
Selection.Insert Shift:=xlDown
Range("B" & i).Select
Selection.Insert Shift:=xlDown
End If
Next

End Sub
0