Macro foirée par décalage de colonne !

Résolu
Phildemarseille Messages postés 17 Statut Membre -  
Phildemarseille Messages postés 17 Statut Membre -
Bonjour,

sous Windows XP / Excel 2000

je me suis adressé récemment au forum pour me dépanner sur une macro et Eriiic m'a gentiment dépanné.

Là dessus, je m'aperçois qu'il me faut rajouter une colonne dans mon tableau, je me dis, qu'à cela ne tienne, il suffit de changer le nom des colonnes dans la macro ... mais ça me colle systématiquement les lignes ajoutées en tête de tableau - que je mette "Ascending" ou "Descending" en bas de macro.
Quand je vous dit que je ne touche pas ma bille en VB !

La macro originelle est la suivante :

' Transfert_lignes_sur_autre_feuille Macro
' Macro enregistrée le 30/05/2013 par vdm
'
' Touche de raccourci du clavier: Ctrl+f
Application.ScreenUpdating = False
Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long

Sheets("Patrimoine").Activate

Col = "M"
NumLig = 3
With Sheets("Général")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 4 To NbrLig
If .Cells(Lig, Col).Value = "640" And .Cells(Lig, "N") = "" Then
.Cells(Lig, Col).EntireRow.Copy
Sheets("Patrimoine").Cells(NumLig, 1).Insert Shift:=xlDown
.Cells(Lig, "N") = "x"
NumLig = NumLig + 1
[A2].CurrentRegion.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlYes
End If
Next Lig
Application.ScreenUpdating = True
End With

End Sub

J'ai remplacé Col = "M" par Col = "O"
J'ai déplacé la colonne témoin en A et ai donc remplacé "N" par "A".

Pourquoi est ce que je n'arrive plus à transférer mes nouvelles lignes créées dans "Général", en bas de tableau dans la feuille "Patrimoine??

Merci d'avance pour vos réponses zéclairées.

Phil

11 réponses

  1. Millaï Messages postés 171 Date d'inscription   Statut Membre Dernière intervention   26
     
    Tu pourrai passer le fichier Excel original et celui modifié pour que l'ont puissent bien comprendre.
    0
  2. foo
     
    Bonjour

    Pas terrible la macro
    avec un modele de ton fichier serais plus simple
    Col doit etre un Chiffre

    Sub test()
    Dim Lig As Long
    Dim Col As Long
    Dim NbrLig As Long
    Dim NumLig As Long
    ' Col = "O" Faux
    'la colonne O = 15
    'Cells ne suporte pas les String
    Col = 15
    Lig = 1
    If Cells(Lig, Col).Value = "640" And Cells(Lig, Col + 1) = "" Then
    MsgBox "Ok"
    End If
    End Sub

    A+
    Maurice
    0
  3. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,

    Est-ce que votre fichier, de l'autre poste du 31.05.2013 est toujours valable ..... ?
    Si oui, qu'elle est la colonne que vous avez insérer .... , à qu'elle position et son nom ?

    Note : flo (bonjour) ceci n'est pas vrai [Col doit être un Chiffre] il est tout à fait possible d'utiliser la notation via un caractère de colonne (A, B, etc....)

    0
  4. Phildemarseille Messages postés 17 Statut Membre 2
     
    Bonjour, voici le fichier en question. La colonne servant de marquage est maintenant la "A".
    J'ai entre temps refait une deuxième macro pour dupliquer des lignes selon un autre critère "G2C" à chercher dans la colonne "C" de la feuille "Général".

    Le lien est : https://www.cjoint.com/?3Fgj53ENLOW
    0
    1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Bonjour,
      Très intéressant, difficile de comprendre, les 2 procédures ne font strictement rien.
      Avez-vous une explication, pourquoi 2 procédures avec 2 choix différents (une fois sur [C : C] et l'autre sur [O : O] ?
      Salutations.
      Le Pingou
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. foo
     
    Bonjour

    jais fait une macro regard si le principe te va

    http://cjoint.com/?3Fgp7Rb08fh

    Ctrl+Maj+F

    A+
    Maurice
    0
  7. Phildemarseille Messages postés 17 Statut Membre 2
     
    Merci Maurice, sauf que dans la feuille "Patrimoine", arrivent toutes sortes de lignes qui n'ont pas comme code de "Service concerné" = 640

    Pour récapituler, de la feuille "Général", doivent être copiées
    - d'une part les lignes dont l'émetteur est "G2C" vers la feuille "G2C"
    - d'autre part les lignes dont le code Service concerné est "640" vers la feuille "Patrimoine"

    Merci pour ta patience.
    Phil
    0
  8. Phildemarseille Messages postés 17 Statut Membre 2
     
    Réponse à Le Pingou, qui a la gentillesse de s'intéresser aussi au sujet :

    je ne peux différencier les factures concernant un type de bâtiment ( Patrimoine) de celles émanant d'un prestataire (G2C) à partir de la même colonne.
    0
    1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Bonjour,
      Merci pour l'information.
      J'ai constaté que flo vous a fournis une bonne solution.
      Je quitte le poste.
      Salutations.
      Le Pingou
      0
  9. foo
     
    Re
    Voila la modife

    Dim Emetteur As String
    Dim Col As Long

    Sub ListeEmetteur()
    Feuil4.Select
    Emetteur = "SEM"
    Col = 3
    Call Transfert
    Feuil3.Select
    Emetteur = "G2C"
    Col = 3
    Call Transfert
    Feuil1.Select
    Emetteur = "640"
    Col = 15
    Call Transfert
    End Sub

    Sub Transfert()
    Application.ScreenUpdating = False
    Rows("3:10000").ClearContents
    NumLig = 3
    With Feuil2
    NbrLig = .Cells(65536, 2).End(xlUp).Row
    For Lig = 4 To NbrLig
    If .Cells(Lig, Col).Value = Emetteur Then
    .Range("B" & Lig & ":O" & Lig).Copy
    Range("A" & NumLig).PasteSpecial xlPasteValues
    .Cells(Lig, 1) = "x"
    NumLig = NumLig + 1
    End If
    Next Lig
    End With
    Cells.WrapText = False
    Rows("2").WrapText = True
    Application.ScreenUpdating = True
    [A3].Select
    [A1].Select
    End Sub

    A+
    Maurice
    0
  10. Phildemarseille Messages postés 17 Statut Membre 2
     
    Erreur de compilation : End Sub attendu après la deuxième ligne ?
    0
  11. foo
     
    Re
    revoila le programme

    http://cjoint.com/?3FgsJy1SGaF

    Maurice
    0
  12. Phildemarseille Messages postés 17 Statut Membre 2
     
    Excusez-moi pour ce silence radio ... j'étais en formation vendredi.

    Super, ça fonctionne au poil !
    Merci beaucoup foo.

    Bien cordialement.
    Phil
    0