Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Écrire une vba par une autre vba

  • Initiateur de la discussion Initiateur de la discussion Tigrette121
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Tigrette121

Guest
Bonjour à tous,

Est-ce possible de modifier une partie d'un code vba par une autre vba?

Si oui, je ne trouve pas comment. 🙁

Merci
 
bonjour Tigrette121,

Ce n'est pas la première fois que je vois ce genre de demande et, chaque fois (donc une fois de plus) je répond :

si vous avez ce besoin, c'est que le code et l'appli ne sont pas correctement étudiées au départ, et que le projet n'a pas été bien ficelé au départ

Mais cela n'engage que moi ...

Message édité par: mutzik, à: 26/04/2006 17:19
 
Bonjour,

Ça se peut fort bien... je suis débutante, il y a un mois je connaissais rien des usf. J'avais déjà fait du basic, du pascal et des macros en symphonie il y a plus de 15 ans.

Mon problème est: je veux consolider plusieurs feuilles (Facture) toutes dans le même classeur que je crée par usf, dans un autre classeur pour inventaire.

Je ne trouve pas comment ajouter des références (à chaque nouvelle facture)dans ma consolidation.
 
Re,

Avec un petit bout de fichier, on devrait pouvoir t'aider plus simplement, et plus facilement car il y a plein d'outils et de fonctions qui peuvent faire une grosse partie du travail avant d'écrire une quelconque ligne de code VBA
 
Bonjour Tigrette, Mutzik


un fichier exemple d'une procédure générée dynamiquement. [file name=procdyn.zip size=18423]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/procdyn.zip[/file]
 

Pièces jointes

Merci d'essayer de m'aider

Voici le code que j'ai réussi à faire, cela fonctionne sauf que la partie

Selection.Consolidate Sources:=Array( _
''C:\\[Facture.xls]Facture26'!R30C2:R43C7
etc

je dois aller chercher un code que je fais écrire dans une autre macro, celle qui cré mes factures. Je ne réussi pas à automatiser cette partie.

Espérant que vous comprenez ce que je veux dire...


Sub MiseAJour()

'
' Mise à jour de l'inventaire
' Macro enregistrée le 2006-04-14 par Carole
'

'Effacer les consolidations et inventaire présédents

'Trouve la première cellule vide de la colonne A

Range('A6:A999').Activate
En_Colonne = ActiveCell.Column
En_ligne = ActiveCell.Row + 1
While Not IsEmpty(ActiveCell.Value)
Cells(En_ligne, En_Colonne).Activate
En_ligne = En_ligne + 1
Wend
With ActiveCell
ActiveCell.FormulaR1C1 = ''
End With


Colonne = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
ligne = ActiveCell.Row

Range('A6:K' & ligne).Select
Selection.ClearContents

Range('A5').Select




''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''' C'est ici qu'il faut copier le code récupérer dans l'autre macro ''''''''''''''''
''''''''''''''''''''' Sélectionner le code suivant ''''''''''''''''
''''''''''''''''''''' Faire le 'Ctrl V' ''''''''''''''''
''''''''''''''''''''' Fermer avec le X rouge ''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Selection.Consolidate Sources:=Array( _
''C:\\[Facture.xls]Facture26'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture27'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture28'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture29'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture30'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture31'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture32'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture33'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture34'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture35'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture36'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture37'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture38'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture39'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture40'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture41'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture42'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture43'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture44'!R30C2:R43C7', _
''C:\\[Facture.xls]Facture45'!R30C2:R43C7'), _
Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False








''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''' OK ne pas sélectionner ici Merci ''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''




'Trier les numéro d'articles vendus

'Trouver la première cellule vide de la colonne A

Range('A6:A999').Activate
En_Colonne = ActiveCell.Column
En_ligne = ActiveCell.Row + 1
While Not IsEmpty(ActiveCell.Value)
Cells(En_ligne, En_Colonne).Activate
En_ligne = En_ligne + 1
Wend
With ActiveCell
ActiveCell.FormulaR1C1 = ''
End With


Colonne = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)
ligne = ActiveCell.Row - 1

Range('A6:C' & ligne).Select
Selection.Sort Key1:=Range('A6'), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom


'Crée le tableau de l'inventaire

Range('H6').Select
ActiveCell.FormulaR1C1 = '=IF(RC[-7]<1000,'' '',VALUE(RC[-7]))'
Range('I6').Select
ActiveCell.FormulaR1C1 = '=VLOOKUP(RC[-1],Inventaire!R4C1:R34C13,7)'
Range('J6').Select
ActiveCell.FormulaR1C1 = '=RC[-7]'
Range('K6').Select
ActiveCell.FormulaR1C1 = '=RC[-2]-RC[-1]'
Range('K7').Select


Range('H6:K6').Select
Selection.Copy
Application.CutCopyMode = False
Selection.AutoFill Destination:=Range('H6:K100'), Type:=xlFillDefault
Range('H6:K100').Select 'Si plus de 100 produit,
Range('H6:K100').Select 'changer ces chiffres pour un plus élevé
Range('A1').Activate

'Supprime les lignes vides

Range('H' & (ligne + 1) & ':K100').Select
Selection.ClearContents

Range('H1').Select


End Sub
 
Bonjour à tous,

Pour reprendre le code d'une feuille sur une autre, une autre réponse Ce lien n'existe plus.

Mais personnellement j'enregistrerais le code dans un fichier xla pour l'avoir disponible pour toutes les factures.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Remplissage auto
Réponses
14
Affichages
381
Réponses
18
Affichages
538
Réponses
7
Affichages
358
Réponses
4
Affichages
322
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…