DEPLACER UNE LIGNE ENTIERE SOUS CONDITIONS

Yerduatcf

XLDnaute Nouveau
Bonjour,

J'ai actuellement un fichier avec les commandes et de l'autre les factures.

J'ai rajouter une colonne dans mon commande "A facturer" avec choix de données "Oui ou Non".

J’aimerais que lorsque je choisis Oui = Ma ligne entière se décale dans mon tableau de facturation (tout en gardant la mise en forme et mes formules). En plus que mon numéro de facture se calcule automatiquement lors du copier coller.

Hâte que vous m'aidiez à trouver une solution svp.
Attention, je n'y connais rien en macro/vba ...

A très vite
 

Yerduatcf

XLDnaute Nouveau
Bonjour,

Effectivement, je comprends votre remarque et voici le fichier d'exemple.
Concernant macro/VBA, je n'y connais rien et n'y comprend rien :(.

Dans mon tableau de portefeuille commande, j'aimerais que lorsque je mets "oui" dans la colonne à facturer, cette ligne se déplace automatiquement dans mon tableau facturation avec le numéro de facture qui se calcule automatiquement à la suite des précédentes.

J'espère que mon explication est compréhensible.

A très vite je l'espère.
 

Pièces jointes

  • EXEMPLE.xlsx
    98.7 KB · Affichages: 29

job75

XLDnaute Barbatruc
Bonjour Yerduatcf, fanfan38, le forum,

Plusieurs "Oui" peuvent être entrés simultanément en colonne AQ.

Et même beaucoup avec du copier-coller... Pas de problème avec cette macro :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, maxi&
With [B3].CurrentRegion.EntireRow
    If Application.CountIf(.Columns(43), "Oui") = 0 Then Exit Sub
    Application.EnableEvents = False 'désactive les évènements
    .Columns(44) = "=1/(RC[-1]<>""Oui"")" 'colonne AR auxiliaire
    .Cells(1, 44) = ""
    .Columns(44) = .Columns(44).Value 'supprime les formules
    .Sort .Columns(44), Header:=xlYes 'tri pour accélérer
    Set P = .Columns(44).SpecialCells(xlCellTypeConstants, 16).EntireRow
    With Feuil2 'CodeName de la feuille Facturation
        maxi = Application.Max(.Columns(3)) 'dernier numéro de facture
        P.Copy 'copier
        .Cells(Application.Match("zzz", .Columns(2)) + 1, 1).Insert 'insertion des lignes copiées
        P.Delete
        With .Columns(44).SpecialCells(xlCellTypeConstants, 16).EntireRow
            .Columns(2) = "FAC"
            .Cells(1, 3) = maxi + 1
            .Columns(3).DataSeries 'numérotation
            .Columns(42).Resize(, 3).Delete xlToLeft
        End With
        '.Activate 'facultatif
    End With
    .Columns(44).ClearContents 'RAZ de la colonne auxiliaire
    Application.EnableEvents = True 'réactive les évènements
End With
End Sub
Fichier joint.

A+
 

Pièces jointes

  • EXEMPLE(1).xlsm
    34 KB · Affichages: 50
Dernière édition:

Yerduatcf

XLDnaute Nouveau
Bonjour,

Je reviens vers vous pour une petite question, ce gain de temps ce nouveau fichier :)
Cependant, je me suis trompé d'une commande à l'autre pour la facturer et je ne peux faire de retour arrière.
Comment annuler l'action et replacer la ligne de cde à sa place svp ?

Je vous remercie d'avance et à très vite.
Audrey
 

Yerduatcf

XLDnaute Nouveau
Bonjour,

Merci pour votre réponse, cependant je n'ai pas l'automatisme d'enregistrer mon fichier à chaque actions, c'est à dire que je peux facturer plusieurs cdes à la fois et donc si je ferme le fichier sans avoir enregistré action par action, il faudra que je recommence mes actions précédentes.

A chaque fois que je fais une erreur, j'ai pour habitude de cliquer sur ctrl+z afin d'annuler ma dernière action, hors là ce n'est possible donc je voulais savoir s'il y avait un autre moyen d'annuler sans fermer mon fichier sans enregistré svp.

Mon explication est-elle compréhensible.

A très vite :)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 870
dernier inscrit
Armisa