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
A voir également:

11 réponses

Millaï Messages postés 196 Statut Membre 26
 
Tu pourrai passer le fichier Excel original et celui modifié pour que l'ont puissent bien comprendre.
0
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
Le Pingou Messages postés 12646 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 
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
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
Le Pingou Messages postés 12646 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
foo
 
Bonjour

jais fait une macro regard si le principe te va

http://cjoint.com/?3Fgp7Rb08fh

Ctrl+Maj+F

A+
Maurice
0
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
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
Le Pingou Messages postés 12646 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 
Bonjour,
Merci pour l'information.
J'ai constaté que flo vous a fournis une bonne solution.
Je quitte le poste.
Salutations.
Le Pingou
0
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
Phildemarseille Messages postés 17 Statut Membre 2
 
Erreur de compilation : End Sub attendu après la deuxième ligne ?
0
foo
 
Re
revoila le programme

http://cjoint.com/?3FgsJy1SGaF

Maurice
0
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