Problème allongement dynamique colonne

Bonsoir à tous,

J'ai quelques petits problèmes qui m'amènent à vous ce soir. Je suis en train de réaliser un modèle de facture pour la société de mon père et je rencontre quelques difficultés. J'ai essayé d'illustrer celles-ci de la meilleure des façons en joignant une image du modèle. Je m'explique: tout d'abord, la partie dédiée aux colonnes description, quantités, PU HT et total est statique, j'aurais voulu savoir s'il était possible que cette section s'agrandisse de manière dynamique lorsque le contenu est plus grand que la place prévue (si cela est possible, les sections en-dessous seront elles décalées???). En effet, il arrive parfois que les factures prennent plusieurs pages de descriptifs. Le deuxième problème est le suivant: dans les sections dédiées au montant de la tva,... j'aimerais insérer une colonne avec la tva applicable. Cependant j'ignore s'il est possible d'avoir différents formats de colonnes sur une même page. En d'autres termes, est-il possible dans ce cas d'avoir une colonne Taux TVA (inscrite en rouge) alors que la colonne A est statique. D'autre part, est-il possible de modifier la largeur des colonnes des sections du bas sans modifier la largeur de celles de la section supérieure???

J'espère m'être exprimée le plus clairement possible et que je trouverai réponse à mes questions.

D'avance je vous remercie pour votre aide.

18modele-facture.xlsx (34.09 Ko)

Bonjour,

Ce que tu demandes est possible mais ce serait mieux d'avoir ton fichier (sans données confidentielles) pour te proposer quelque chose.

Amicalement

Merci pour ta réponse rapide dan. J'ai joint le fichier original bien que mes formats de cellules,... etc ne soient pas encore définit.

Toujours personne pour mon petit problème ?

Re,

Essaie déjà avec ce code

Dim ison As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
'Macro Dan pour kiki
If ison = True Then Exit Sub
If Target.Row > 16 Then
    If Range("F" & Target.Row) > 0 And Range("F" & Target.Row + 4) = "Total" Then
    ison = True
        Rows(Target.Row + 1).EntireRow.Insert
        Range("F" & Target.Row).Copy Range("F" & Target.Row + 1)
    End If
    ison = False
End If
End Sub

Code à placer dans la feuille concernée par la facture

Pour le placer :

  • copie le code ci-avant
  • Clique droite sur l'onglet contenant la facture
  • Choisis "visualiser le code"
  • colle le code dans la fenêtre

Dès que atteindra l'avant dernière ligne, une nouvelle ligne sera créée

Selon les besoins on peut bien sûr améliorer

A te relire

Merci pour ces lignes de code Dan mais j'ai réalisé les manipulations que tu cites et ça ne fonctionne pas, peut-être que je m'y prends mal???

Re

Les macros sont bien activées ?

Dans ton profil tu mentionnes que tu as excel 2003 et ton fichier vient d'une version 2007 ou supérieur.

Sous excel 2007, il faut enregistrer ton fichier avec l'extension XLSM au lieu de XLSX

A te relire

Oui, en fait je dois changer mon profil pcq j'ai la version 2010 maintenant. J'ai bien enregistré le fichier en xlsm mais ça ne fonctionne pas. J'ai procédé autrement en réalisant un bouton permettant d'ajouter une ligne si la place prévue est insuffisante mais c'est moins bien que le système que tu proposais donc si tu vois quel problème ça pourrait être ou peut-être m'envoyer le fichier si tu as réussi à le faire tourner chez toi. Mais bon je ne voudrais pas abuser

En tout cas, un grand merci pour ton aide.

re,

Dans le fichier, fais le test suivant :

  • mets une donnée de quantité en C38 puis un prix en E38
  • A cet endroit cela doit ajouter une ligne

Sous excel 2010, il faut aussi que l'outil Developpeur soit actif je pense. A activer par l'onglet Fichier --> options avancées

Si cela ne fonctionne pas je ferai le test demain sous excel 2010.

Amicalement

Salut Dan, ça fonctionne parfaitement maintenant. Cependant, j'ai changé quelque peu le modèle de facture, j'ai essayé d'adapter le code au nouveau modèle mais je n'ai pas réussi. Je joins le nouveau modèle si ça ne te dérange pas de l'adapter.

Merci beaucoup!!!

re,

Dans le code remplace cette ligne

If Range("F" & Target.Row) > 0 And Range("F" & Target.Row + 4) = "Total" Then

par

If Range("F" & Target.Row) > 0 And Range("G" & Target.Row + 3) = "Total" Then

Si ok, n'oublie pas de cliquer sur le v Vert à coté du bouton Editer pour cloturer le fil

Amicalement

Grand merci à toi Dan, ça fonctionne parfaitement.

On peut cloturer le sujet...

Rechercher des sujets similaires à "probleme allongement dynamique colonne"