> Tous les forums > Forum Bureautique
 automatisme de recopie de lignes
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
1000cbr
  Posté le 23/06/2015 @ 18:09 
Aller en bas de la page 
Astucien

Bonjour à toutes et à tous.

J'ai une question concernant un fichier EXCEL.

Je gère un fichier (voir en PJ) qui me permet de faire un road book pour mes ballades en moto. Je rentre toutes les étapes que je souhaite faire et j'ai un certain nombre d'opérations qui sont automatisées.

Mon problème est que si je veux rajouter une étape sans perdre mes nombreux calculs, je dois :

  • me positionner à l'endroit où je souhaite insérer une ligne
  • à partir de cette ligne (et y compris celle-ci) copier toutes mes colonnes jusqu'à la fin de mon tableau
  • descendre d'une ligne
  • coller ce que je viens de copier

Ma question (évidente) : comment faire ceci à l'aide d'une macro ?

Je vous remercie par avance.

http://www.cjoint.com/c/EFxp1AtR1qn

Publicité
ferrand
 Posté le 24/06/2015 à 01:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Si j'ai bien compris, tu veux pouvoir insérer une ligne sans que cela affecte les lignes suivantes déjà servies.

Si c'est bien le cas, la méthode la plus simple, compte tenu de l'organisation de ton tableau, consiste à insérer la ligne à l'endroit souhaité puis à copier une ligne vide et la coller sur la ligne insérée en collage spécial formules de façon à rétablir les formules.

Lorsqu'on insère une ligne, Excel adapte dans la majorité des cas les formules des lignes qui ont bougé de façon qu'elles demeurent valides. Cependant tes formules en J, K et R résistent à cette adaptation car elles font référence à des cellules de la ligne antérieure.

J'ai donc dû revoir les formules en J9, K9 et R9 pour les rendre adaptables. Egalement A9, pour pouvoir supprimer la table en AA:AB, et la colonne Z par la même occasion (qui devenait dès lors inutile)

La macro, rattachée à un bouton "INSÉRER", lorsqu'on clique sur le bouton insère une ligne au-dessus de la cellule active, copie la ligne 102 (que j'ai masquée pour la protéger) et colle les formules sur la ligne insérée.

http://www.cjoint.com/c/EFxwrOCTKRy

J'en ai profité pour rassembler tes macros sur un seul module : inutile de disperser... Et j'ajouterais que ta macro de remise à zéro me paraît curieuse (et douteuse), il ne semble pas qu'elle fasse véritablement une remise à zéro si tant est qu'elle ne fait pas de dégâts. Tu aurais intérêt à la revoir pour qu'elle efface exclusivement les données saisies sur la totalité du tableau, et à l'écrire (plutôt que l'enregistrer.

Il me semble qu'elle devrait se limiter à :

Range("F8:I8,D9:I101,L9:N101").ClearContents
Range("I1").MergeArea.ClearContents
Range("I1").Select

Mais à toi de juger.

1000cbr
 Posté le 24/06/2015 à 07:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

salut

Pour la macro de RAZ je sais que je dois la reprendre mais je voulais mettre le tout au point avant de la refaire.

Pour le reste je dois m'absenter pendant au moins un mois donc ne pourrai pas voir et apprécier tes conseils tout de suite.

Si je ne te réponds pas de suite, ne prends pas cela pour de l'impolitesse, je reprends le fil de cette conversation dès mon retour.

Merci de ta rapidité de réponse et sûrement pour sa qualité .

ferrand
 Posté le 24/06/2015 à 12:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Pas de souci...!

J'ai opéré quelques rectifs supplémentaires : http://www.cjoint.com/c/EFykM5CA5Xy

Substitué mes indications précédentes pour la RàZ en ajoutant B6 à effacer (que j'avais omis), et modifié quelques formules pour éviter l'affichage d'erreur en remettant à zéro.

Pour l'insertion, si ta feuille est protégée, il conviendra d'ajouter les commandes pour déprotéger et reprotéger, aux emplacements indiqués dans la macro.

De même dans ce cas, il te faudra prévoir une macro supprimer pour pouvoir rapidement supprimer une ligne. La ligne de code pour la suppression (de la ligne sur laquelle se trouve la cellule active) :

ActiveCell.EntireRow.Delete

à faire précéder de la déprotection, et suivre par la reprotection.

Je me suis interrogé sur ta formule en R2 : =JOUR(B6)+1 pour faire apparaître un jour de la semaine. L'utilisation de la fonction JOUR est inadéquate à cet effet ; voir ce sujet contemporain du tien : https://forum.pcastuces.com/date_-f23s35404.htm . Je n'ai toutefois pas interprété le jour que tu souhaitais faire apparaître. S'il s'agit du dernier jour de l'itinéraire, la formule de remplacement que j'ai mise convient, sinon il faudra ajuster (condition nécessaire pour renvoyer "" [chaîne vide] et non 0 lorsque B6 n'est pas servie, 0 provoquant un affichage d'erreur).

A+



Modifié par ferrand le 24/06/2015 13:00
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
71,99 €Amazon Fire TV Cube à 71,99 €
Valable jusqu'au 28 Janvier

Boulanger fait une belle promotion sur l'Amazon Fire TV Cube qui passe à 71,99 € au lieu de 119,99 €. Fire TV Cube est l'appareil Fire TV le plus rapide et le plus puissant (4K ultra HD, 6 coeurs, 16 Go, Ethernet, Dolby Atmos) : il vous livre une expérience d'utilisation fluide et rapide pour profiter de vos films et séries préférés (Netflix, Prime Video, Disney+, MyCanal, Molotov, YouTube). Fire TV Cube vous permet de poser la télécommande et de vous plonger dans vos films et séries préférés en utilisant uniquement le son de votre voix. Vous pouvez aussi demander à Alexa de régler le volume ou de couper le son de votre TV ou barre de son compatible. 


> Voir l'offre
40,89 €Alimentation PC Gigabyte P650B (650W, 80+Bronze) à 40,89 €
Valable jusqu'au 27 Janvier

RueDuCommerce solde l'alimentation PC Gigabyte P650B (650W, 80+Bronze) qui passe à 40,89 € au lieu de 52,90 € ailleurs. Tous les condensateurs haute qualité de l'alimentation sont d'origine japonaise. Ils garantissent performances et stabilité sur le long terme. Avec Le ventilateur à roulement hydraulique silencieux de 120 mm optimise la réduction du bruit et les performances thermiques. La vitesse du ventilateur est ajustée en fonction de la détection automatique de la puissance. Le ventilateur à roulement hydraulique offre une durée de vie plus longue et plus stable. 


> Voir l'offre
249 €Ecran 31.5 pouces incurvé Acer ED3 (QHD, VA, 144 Hz) à 249 €
Valable jusqu'au 26 Janvier

Acer fait une promotion sur l'écran 31.5 pouces incurvé Acer ED3 ED323QURA à 249,90 € via une remise automatique de 100 € dans le panier au lieu de 349 €. L'écran offre un rayon de courbure de 1800R et dispose d'une résolution QHD de 2560x1440 pixels à 144 Hz. Temps de réponse de 4 ms. L'écran est Adaptive Sync et compatible Freesync et GSync. Connexion via HDMI, DVI ou DP.


> Voir l'offre

Sujets relatifs
impression des lignes
Comparaison 3 lignes avec fichier
compter lignes d'un tableau dont toutes les cellules sont en couleur
Faire un tableau sur Excel avec des sauts de lignes
Recopie cellule par macro
Supprimer lignes d'un Tableau à l'impression
Recopie cellule dans un autre classeur
macro afficher masquer lignes tableau dans word 2010
lignes perdues dans libre office
Imprimer ses enveloppes oui, mais toutes les lignes !
Plus de sujets relatifs à automatisme de recopie de lignes
 > Tous les forums > Forum Bureautique