Macro foirée par décalage de colonne !

Résolu/Fermé
Phildemarseille Messages postés 17 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 - 5 juin 2013 à 17:19
Phildemarseille Messages postés 17 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 - 10 juin 2013 à 10:05
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 171 Date d'inscription dimanche 8 juillet 2012 Statut Membre Dernière intervention 21 mars 2015 26
5 juin 2013 à 18:03
Tu pourrai passer le fichier Excel original et celui modifié pour que l'ont puissent bien comprendre.
0
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 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
5 juin 2013 à 23:16
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 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 2
6 juin 2013 à 10:04
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 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
6 juin 2013 à 16:22
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
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 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 2
6 juin 2013 à 16:30
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 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 2
6 juin 2013 à 16:38
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 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
6 juin 2013 à 21:50
Bonjour,
Merci pour l'information.
J'ai constaté que flo vous a fournis une bonne solution.
Je quitte le poste.
Salutations.
Le Pingou
0
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 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 2
6 juin 2013 à 17:09
Erreur de compilation : End Sub attendu après la deuxième ligne ?
0
Re
revoila le programme

http://cjoint.com/?3FgsJy1SGaF

Maurice
0
Phildemarseille Messages postés 17 Date d'inscription jeudi 30 mai 2013 Statut Membre Dernière intervention 29 avril 2014 2
10 juin 2013 à 10:05
Excusez-moi pour ce silence radio ... j'étais en formation vendredi.

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

Bien cordialement.
Phil
0