demande d'aide pour une macro

bpol

XLDnaute Impliqué
Bonsoir,
me revoici avec mon fichier que j'ai du modifier.

j'ai créer une macro (" don") à ma sauce !!!!:p Oui je sais c'est pas beau à lire:p

mais comme je m'en doutais elle ne fonctionne pas

qui peut m'aider pour cette macro?


http://cjoint.com/?bguITdKnnp

Merci
Bpol
 

Paritec

XLDnaute Barbatruc
Re : demande d'aide pour une macro

Bonsoir Bpol,
oui ta macro elle marche pas c'est pas surprenant
tu écris
Code:
Cells(Ligne, 3) = Sheets("Mafeuille").Range("D19")
Mais il faudrait pour cela que tu ais une feuille nommée "Mafeuille" et c'est pas le cas donc l'indice n'appartient pas etc etc etc
la première partie de ta macro se résume à cela
Code:
i = Range("B65536").End(xlUp).Row + 1
For n = 2 To 27
Cells(i, n) = Cells(19, n)
Next n
Voilà alors si tu nous dis ou tu veux prendre les infos on avancera avec toi
a+
papou :)
 

Efgé

XLDnaute Barbatruc
Re : demande d'aide pour une macro

Bonsoir bpol;
Si j"ai bien compris... (mais ce n'est pas certain).
Un exemple:

Code:
Sub don()

Dim Var1 As String
Dim Var2 As String

MaFeuille = ActiveSheet.Name
Ligne = Range("B65536").End(xlUp).Row + 1

Var1 = Cells(Ligne, 2).Value
Var2 = Cells(Ligne, 3).Value

Sheets("dons-jour").Select
    Ligne = Range("A65536").End(xlUp).Row + 1
    
    Cells(Ligne, 1) = Var1
    Cells(Ligne, 2) = Var2
    
Sheets("Mafeuille").Select
Range("B19:AA19").ClearContents
Sheets("liste").Activate
End Sub

Je n"ai pas fait les 27 variables (il est à noter que vous "déclarer" 27 cellules et n'en utilisez que 18)....
En espérant ne pas être "à coté de la plaque"
Cordialement

Edit : Bonsoir Paritec
 
Dernière édition:

bpol

XLDnaute Impliqué
Re : demande d'aide pour une macro

RE,
to Paritec dans ma macro

j'avais inscrit : MaFeuille = ActiveSheet.Name

To Efgé votre macro ne copie aucunes données et elle bloque à hauteur de
Sheets("Mafeuille").Select.
message d'erreur : erreur d'éxécution 9 l'indice n'apartient pas à la sélection

pour expliqué ce que je désire c'est quand ma nouvelle feuille est crée et qui est renommée je voudrais que cette macro copie les données de la ligne 19
1. dans le tableau juste en dessous et cela à la suite
2. dans la feuille dons-jour égalemenyt à la suite
puis effacer la ligne 19 dans la feuille active

j'espère que mon explication est assez claire.
Bpol
 

Paritec

XLDnaute Barbatruc
Re : demande d'aide pour une macro

Bonsoir Bpol Efgé,
J'ai perdu ma boule de cristal, alors je vais te laisser pondre un exemple avec des explications claires et cohérentes et après je regarderai.
là j'avais bien compris que tu voulais copier une ligne mais j'ai toujours pas compris sur quelle feuille et vers quelle autre !!!
Je suis peut-être fatigué debout depuis 1h30 mais bon!!!
bonne soirée
Papou :)

EDIT : oui tu as écris MaFeuille = ActiveSheet.Name mais si c'était pour nommer ta feuille c'est ActiveSheet.Name = "MaFeuille"
 

Efgé

XLDnaute Barbatruc
Re : demande d'aide pour une macro

Re,
Je ne comprend rien du tout:
To Efgé votre macro ne copie aucunes données et elle bloque à hauteur de
Sheets("Mafeuille").Select.
message d'erreur : erreur d'éxécution 9 l'indice n'apartient pas à la sélection
C'est votre code qui active la feuille "Mafeuille"

pour expliqué ce que je désire c'est quand ma nouvelle feuille est crée et qui est renommée je voudrais que cette macro copie les données de la ligne 19
1. dans le tableau juste en dessous et cela à la suite

Dans quel tableau ?

2. dans la feuille dons-jour égalemenyt à la suite
puis effacer la ligne 19 dans la feuille active

Pourquoi avoir créé la ligne si c"est pour la supprimer aussitot?

j'espère que mon explication est assez claire.

Non pas vraiment
Cordialement

Edit : Paritec, votre post me rassure, j'avais l'impression d'être sur une autre planète...
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : demande d'aide pour une macro

bonjour le fil
j'ai supposé que tu voulais écrire(ligne 19 de fiche)dans la 1ère ligne vide de stock entrée
Sub don()
Dim C As Byte, Ligne As Long, MaLigne As Variant

MaLigne = Range("Fiche!B19:AA19")

With Worksheets("Stock entrée")
Ligne = .Range("A65536").End(xlUp).Row + 1
For C = 1 To UBound(MaLigne, 2) 'colonnes
.Cells(Ligne, C) = MaLigne(1, C)
Next C
End With

end sub

pour la suite,plus de clarté,svp
feuille active peut être n'importe quelle feuille,surtout en essai
mieux vaut préciser

à bientôt
 

Law

XLDnaute Junior
Re : demande d'aide pour une macro

Bonjour tout le monde,

J'avoue que je n'ai pas cherché à comprendre, j'ai juste modifié un peu le code pour qu'il fonctionne tel que tu l'avais écrit (sans effectuer une refonte complète du code).

Sub don()
'
' don Macro
' Macro enregistrée le 6/01/2010 par POLAIN
'
MaFeuille = ActiveSheet.Name
'And
Ligne = Range("B65536").End(xlUp).Row + 1
Cells(Ligne, 2) = Range("B19")
Cells(Ligne, 3) = Range("C19")
Cells(Ligne, 4) = Range("D19")
Cells(Ligne, 5) = Range("E19")
Cells(Ligne, 6) = Range("F19")
Cells(Ligne, 7) = Range("G19")
Cells(Ligne, 8) = Range("H19")
Cells(Ligne, 9) = Range("I19")
Cells(Ligne, 10) = Range("J19")
Cells(Ligne, 11) = Range("K19")
Cells(Ligne, 12) = Range("L19")
Cells(Ligne, 13) = Range("M19")
Cells(Ligne, 14) = Range("N19")
Cells(Ligne, 15) = Range("O19")
Cells(Ligne, 16) = Range("P19")
Cells(Ligne, 17) = Range("Q19")
Cells(Ligne, 18) = Range("R19")
Cells(Ligne, 19) = Range("S19")
Cells(Ligne, 20) = Range("T19")
Cells(Ligne, 21) = Range("U19")
Cells(Ligne, 22) = Range("V19")
Cells(Ligne, 23) = Range("W19")
Cells(Ligne, 24) = Range("X19")
Cells(Ligne, 25) = Range("Y19")
Cells(Ligne, 26) = Range("Z19")
Cells(Ligne, 27) = Range("AA19")
'And

With Sheets("dons-jour")
Ligne = .Range("A65536").End(xlUp).Row + 1

.Cells(Ligne, 1) = Range("E2")
.Cells(Ligne, 2) = Range("C19")
.Cells(Ligne, 3) = Range("D19")
.Cells(Ligne, 4) = Range("E19")
.Cells(Ligne, 5) = Range("F19")
.Cells(Ligne, 6) = Range("G19")
.Cells(Ligne, 7) = Range("H19")
.Cells(Ligne, 8) = Range("I19")
.Cells(Ligne, 9) = Range("J19")
.Cells(Ligne, 10) = Range("K19")
.Cells(Ligne, 11) = Range("L19")
.Cells(Ligne, 12) = Range("M19")
.Cells(Ligne, 13) = Range("N19")
.Cells(Ligne, 14) = Range("O19")
.Cells(Ligne, 15) = Range("P19")
.Cells(Ligne, 16) = Range("Q19")
.Cells(Ligne, 17) = Range("R19")
.Cells(Ligne, 18) = Range("S19")
End With

'And

Range("B19:AA19").ClearContents

'And

Sheets("liste").Select

End Sub

Voili voilou.
 

Efgé

XLDnaute Barbatruc
Re : demande d'aide pour une macro

Re à tous,
Paritec, dans le B_ _ _ _ l je n'avait même pas vu le "ma feuille = ..."
Je propose d'y aller par étape:
bpol, partant du principe que vous êtes sur la feuille où se trouve vos données quand vous lancer la macro, ce code vous va t il ?
Code:
Sub don()

Dim Var1 As String
Dim Var2 As String

ActiveSheet.Name = "MaFeuille"
Ligne = Range("B65536").End(xlUp).Row + 1

Var1 = Cells(Ligne, 2).Value
Var2 = Cells(Ligne, 3).Value

Sheets("dons-jour").Select
    Ligne = Range("A65536").End(xlUp).Row + 1
    
    Cells(Ligne, 1) = Var1
    Cells(Ligne, 2) = Var2
    
Sheets("Mafeuille").Select
Range("B19:AA19").ClearContents
Sheets("liste").Activate
End Sub
 

bpol

XLDnaute Impliqué
Re : demande d'aide pour une macro

RE,

bon vais essayer de vous expliquer ( mooi aussi très longue journée)

la feuille "fiche" est copié dans une nouvelle feuille renommée avec sa cellule E2 .
dans cette nouvelle feuille pa exemple "2"
je voudrais avec la macro copier la ligne 19 de la feuille "2" dans le tableau qui commence en la ligne 21 en même temps copier cette ligne 19 dans la feuille dons-jour
puis effacer la ligne 19 de la feuille "2"
mais encore merci de vous pencher sur mon problème.
Bpol


pour te répondre EFgé elle renomme ma feuille que j'ai créee avec le nom "mafeuille"
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : demande d'aide pour une macro

Re,
Je commence à comprendre (quoi que ...)
Je propose de modifier plutot le début du code de la macro créer:
Code:
Sub créer()
'
' créer Macro
' Macro enregistrée le 1/01/2007 par Polain
Range("C21:AA21") = "0"

    Dim NomFeuille As String
    Dim Ligne As Integer
    
    
    Rows("19:19").Select
    Selection.Copy
    Rows("21:21").Select
    Selection.Insert Shift:=xlDown
    
    Sheets("dons-jour").[COLOR="Green"][B]Activate[/B][/COLOR]
    Rows("3:3").Select
    Selection.Insert Shift:=xlDown
    
'Récupération du nome de la nouvelle feuille
    NomFeuille = Range("E2")
Puis la suite de votre code
Je reviendrai sur ce fil demain.
Essayez et postez vos remarques
Cordialement

Edit en Vert
 
Dernière édition:

bpol

XLDnaute Impliqué
Re : demande d'aide pour une macro

Bonjour Efgé,

voilà le résultat

1 elle copie bien les données dans la fiche renommée
2 Comment faire pour qu'elle ne copie pas la mise en page de la ligne?
3 elle ne copie pas dans la feuille dons-jour

j'ai ajouté le code avant de renomé la feuille afin d'effacé la ligne 19
Sheets("fiche").Select
Rows("19:19").Select
Selection.ClearContents

mais il restera le problème que je dois réencoder dans les nouvelles feuilles que j'aurai créees d'où ma macro "dons" que j'ai besoin

Encore Grand merci
BPOL

Edit:
pour la macro "dons" j'ai essayé en reprenant votre code:

MaFeuille = ActiveSheet.Name

Rows("19:19").Select
Selection.Copy
Rows("21:21").Select
Selection.Insert Shift:=xlDown

Sheets("dons-jour").Select
Rows("3:3").Select
Selection.Insert Shift:=xlDown

Sheets("Mafeuille").Select
Rows("19:19").Select
Selection.ClearContents

mais toujours pas dans la feuille "dons-jour" et bloque à hauteur de Sheets("Mafeuille").Select


Bonne journée
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : demande d'aide pour une macro

Bonjour Bpol,
Je t'ai déjà demandé à deux reprises de faire un classeur avec un exemple de ce que tu veux obtenir.
Tu fais ta feuille même en manuel et tu expliques ce que tu veux dans le fichier dans la feuille créé.
Si tu ne veux pas te donner le mal de répondre c'est un autre problème
a+
Papou

EDIT: bonjour Efgé, là c'est pas gagné car a mon avis Bpol il ne lis que ce qui l'intéresse!!!
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : demande d'aide pour une macro

Bonjour bpol, Paritec
Hier soir il devait être trop tard pour mes yeux...
Pour le collage sur la feuille "dons-jour" remplacer les lignes par:

Code:
Sheets("dons-jour").Activate
    Rows("3:3").Select
    ActiveSheet.Paste

Je n'aurai pas beaucoup de temps aujourd'hui désolé, mais je crois que Paritec suivra le fil (si vous suivez ses demandes...)
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 067
Membres
104 015
dernier inscrit
kkgk