Code VBA à valider
ThalieMTL
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
ThalieMTL Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
ThalieMTL Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je m'essaie à VBA suite à un besoin au travail.
J'ai un Excel qui est un relevé de compte. Dans un autre onglet, j'ai la liste des comptes pour lesquels je dois faire le relevé.
J'ai quelques problèmes:
- le process s'arrête après avoir exporté le 1er relevé en pdf
- le relevé exporté en pdf devrait porter le numéro de compte comme nom et il s'exporte avec le nom générique "2013 relevés"
- le process ne passe pas à la cellule suivante pour générer le relevé suivant (comment lui dire à quelle cellule aller se repositionner?)
Voilà, j'espère que c'est clair et que vous avez de la patience avec les débutantes ;-)
Merci infiniment...
Sub Macro2()
'
' Macro2 Macro
'
Sheets("Fonds dotés").Select
Range("A1").Select
Do While ActiveCell.Value <> Empty
Selection.Copy
Sheets("Relevé").Select
Range("F2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Dim filename As String
filename = Range("A1").Value
Sheets("Relevé").ExportAsFixedFormat xlTypePDF, "K:\Temporaire Valérie - NE PAS SUPPRIMER SVP\Comptabilité\Relevés de compte - ancienne méthode\2013 relevés" & Range("A1").Value & ".pdf"
Sheets("Fonds dotés").Select
Range("A1").Select
Selection.Offset(1, 0).Select
Loop
End Sub
Je m'essaie à VBA suite à un besoin au travail.
J'ai un Excel qui est un relevé de compte. Dans un autre onglet, j'ai la liste des comptes pour lesquels je dois faire le relevé.
J'ai quelques problèmes:
- le process s'arrête après avoir exporté le 1er relevé en pdf
- le relevé exporté en pdf devrait porter le numéro de compte comme nom et il s'exporte avec le nom générique "2013 relevés"
- le process ne passe pas à la cellule suivante pour générer le relevé suivant (comment lui dire à quelle cellule aller se repositionner?)
Voilà, j'espère que c'est clair et que vous avez de la patience avec les débutantes ;-)
Merci infiniment...
Sub Macro2()
'
' Macro2 Macro
'
Sheets("Fonds dotés").Select
Range("A1").Select
Do While ActiveCell.Value <> Empty
Selection.Copy
Sheets("Relevé").Select
Range("F2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Dim filename As String
filename = Range("A1").Value
Sheets("Relevé").ExportAsFixedFormat xlTypePDF, "K:\Temporaire Valérie - NE PAS SUPPRIMER SVP\Comptabilité\Relevés de compte - ancienne méthode\2013 relevés" & Range("A1").Value & ".pdf"
Sheets("Fonds dotés").Select
Range("A1").Select
Selection.Offset(1, 0).Select
Loop
End Sub
A voir également:
- Code VBA à valider
- Code ascii - Guide
- Ethernet n'a pas de configuration ip valide - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
2 réponses
Bonjour,
En fin de code pourquoi reviens-tu en cellule A1.
Comme avant de sortir de l'onglet tu devais être positionné sur la bonne cellule, quand tu y reviens tu fais simplement ton offset pour te positionner sur la celule suivante
Yann
En fin de code pourquoi reviens-tu en cellule A1.
Comme avant de sortir de l'onglet tu devais être positionné sur la bonne cellule, quand tu y reviens tu fais simplement ton offset pour te positionner sur la celule suivante
Yann
Mise à jour - vendredi 31 janvier
J'ai essayé différentes choses avec plus ou moins de succés alors voilà où j'en suis.
Récapitulatif des besoins:
J'ai un Excel qui est un relevé de compte (onglet Relevé). Dans un autre onglet (Fonds dotés), j'ai la liste des comptes pour lesquels je dois faire le relevé.
Le processus normal devrait être:
Je copie la première valeur dans l'onglet Fonds dotés
Je la colle dans une cellule (toujours la même, F2) de Relevé
J'exporte l'onglet Relevé en pdf avec le nom = numéro copié et collé à l'étape précédente depuis la cellule de Fonds dotés
Je reviens dans l'onglet Fonds dotés et je copie la cellule suivante (en dessous) pour générer le nouveau relevé.
Je dois aussi imprimer physiquement le relevé ce que j'ai réussi en partie à faire dans la macro suivante mais sans la boucle qui ne marche jamais.
J'ai donc créé un bouton de la macro Imprime ci-dessous prés de ma liste des Fonds et j'ai cliqué 237 fois dessus!! Ridicule ;-)
Donc voici mes questions:
- comment ajouter une boucle à la macro Imprime pour qu'elle imprime tout et s'arrête quand il n'y a plus de valeur dans la colonne de l'onglet Fonds dotés?
- comment ajouter une commande d'enregistrement ou export en PDF (cela peut être une macro séparée de Imprime)? Il semble que quand j'essaie, il bloque au moment d'affecter le nom du fichier donc n'enregistre jamais ou uniquement le premier fichier)
Sub Imprime()
'
' Imprime Macro
'
' Touche de raccourci du clavier: Ctrl+i
'
Selection.Copy
Sheets("Relevé").Select
ActiveSheet.Paste
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Fonds dotés").Select
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
J'ai essayé cette Macro ImprimePDF mais l'enregistrement du nom de fichier ne marche pas et je ne suis pas sûre si on peut imbriquer une Sub dans une Sub ;-) Bref, pas brillante celle là mais peut être qu'elle peut être corrigée?
Sub ImprimePDF()
'
' ImprimePDF Macro
'
' Touche de raccourci du clavier: Ctrl+m
'
Do Until IsEmpty(ActiveCell)
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Sheets("Relevé").Select
ActiveSheet.Paste
Sub FileNameAsCellContent()
Dim FileName As String
Dim Path As String
Application.DisplayAlerts = False
Path = "K:\Temporaire Valérie - NE PAS SUPPRIMER SVP\Comptabilité\Relevés de compte - ancienne méthode\2013 relevés" 'Change the directory path here where you want to save the file
FileName = Range("A1").Value & ".pdf" 'Change extension here
ActiveWorkbook.SaveAs Path & FileName, xlTypePDF 'Change the format here which matches with the extention above. Choose from the following link https://docs.microsoft.com/en-us/office/vba/api/Excel.XlFileFormat
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub
Sheets("Fonds dotés").Select
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
End Sub
Merci à ceux qui voudront bien me donner quelques tuyaux et bon WE à tous!
Valérie
J'ai essayé différentes choses avec plus ou moins de succés alors voilà où j'en suis.
Récapitulatif des besoins:
J'ai un Excel qui est un relevé de compte (onglet Relevé). Dans un autre onglet (Fonds dotés), j'ai la liste des comptes pour lesquels je dois faire le relevé.
Le processus normal devrait être:
Je copie la première valeur dans l'onglet Fonds dotés
Je la colle dans une cellule (toujours la même, F2) de Relevé
J'exporte l'onglet Relevé en pdf avec le nom = numéro copié et collé à l'étape précédente depuis la cellule de Fonds dotés
Je reviens dans l'onglet Fonds dotés et je copie la cellule suivante (en dessous) pour générer le nouveau relevé.
Je dois aussi imprimer physiquement le relevé ce que j'ai réussi en partie à faire dans la macro suivante mais sans la boucle qui ne marche jamais.
J'ai donc créé un bouton de la macro Imprime ci-dessous prés de ma liste des Fonds et j'ai cliqué 237 fois dessus!! Ridicule ;-)
Donc voici mes questions:
- comment ajouter une boucle à la macro Imprime pour qu'elle imprime tout et s'arrête quand il n'y a plus de valeur dans la colonne de l'onglet Fonds dotés?
- comment ajouter une commande d'enregistrement ou export en PDF (cela peut être une macro séparée de Imprime)? Il semble que quand j'essaie, il bloque au moment d'affecter le nom du fichier donc n'enregistre jamais ou uniquement le premier fichier)
Sub Imprime()
'
' Imprime Macro
'
' Touche de raccourci du clavier: Ctrl+i
'
Selection.Copy
Sheets("Relevé").Select
ActiveSheet.Paste
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Fonds dotés").Select
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
J'ai essayé cette Macro ImprimePDF mais l'enregistrement du nom de fichier ne marche pas et je ne suis pas sûre si on peut imbriquer une Sub dans une Sub ;-) Bref, pas brillante celle là mais peut être qu'elle peut être corrigée?
Sub ImprimePDF()
'
' ImprimePDF Macro
'
' Touche de raccourci du clavier: Ctrl+m
'
Do Until IsEmpty(ActiveCell)
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Sheets("Relevé").Select
ActiveSheet.Paste
Sub FileNameAsCellContent()
Dim FileName As String
Dim Path As String
Application.DisplayAlerts = False
Path = "K:\Temporaire Valérie - NE PAS SUPPRIMER SVP\Comptabilité\Relevés de compte - ancienne méthode\2013 relevés" 'Change the directory path here where you want to save the file
FileName = Range("A1").Value & ".pdf" 'Change extension here
ActiveWorkbook.SaveAs Path & FileName, xlTypePDF 'Change the format here which matches with the extention above. Choose from the following link https://docs.microsoft.com/en-us/office/vba/api/Excel.XlFileFormat
Application.DisplayAlerts = True
ActiveWorkbook.Close
End Sub
Sheets("Fonds dotés").Select
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
End Sub
Merci à ceux qui voudront bien me donner quelques tuyaux et bon WE à tous!
Valérie
Quand j'enlève les lignes suivantes
Sheets("Fonds dotés").Select
Range("A1").Select
La sélection descend d'une ligne mais à l'endroit ou on a collé la valeur, pas à l'endroit où il devrait copier la suivante pour reprendre la boucle...
Le processus normal devrait être:
Je copie une valeur dans l'onglet Fonds dotés
Je la colle dans une cellule (toujours la même) de Relevé
J'exporte l'onglet Relevé en pdf avec le nom = numéro copié dans la cellule de Fonds dotés
Je reviens dans l'onglet Fonds doté et je copie la cellule suivante (en dessous) pour générer le nouveau relevé
Il ne doit pas manquer grand chose à mon code n'est ce pas?
Merci de votre aide!