VBA: pas de changement de feuille malgé la boucle

scoulibri

XLDnaute Nouveau
Bonjour,
Je vais essayé d'être le plus clair possible.
Je réalise une macro qui doit insérer deux colonnes pour y incrémenter les numéros de facture et date de factures sur chaque ligne puis se répéter sur chaque onglet
j'ai deux problèmes:

1) la boucle s'effectue bien mais sur la même feuille. :eek:
j'ai pas du tenir compte du positionnement relative (réaliser à partir de l'enregistreur) :confused:

2) conséquence du premier, (subsidiaire) l'emplacement de la date et le numéro de facture peuvent changer d'un onglet sur l'autre. J'aimerai pour chaque onglet qu'il recherche une cellule dont la valeur est "date" et une autre "n° de facture" et copier la cellule du dessous (qui sera à incrémenter)

Sub Macro5()
Dim Ws


For Each Ws In ThisWorkbook.Sheets

Columns("B:C").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B11").Select
ActiveCell.FormulaR1C1 = "Date de facture"
Range("C11").Select
ActiveCell.FormulaR1C1 = "N0de facture"
Range("D9").Select
Selection.Copy
Range("C12").Select
ActiveSheet.Paste
Range("A9").Select
Range(("B12:C12"), [A65000].End(xlUp)).Select
Selection.FillDown

MsgBox Ws.Name

Next Ws

End Sub

Merci de votre aide
 
Dernière édition:

Gelinotte

XLDnaute Accro
Re : VBA: pas de changement de feuille malgé la boucle

Bonsoir,

À tester ...

Code:
Sub Macro5()
 Dim Ws as WorkSheet


 For Each Ws In ThisWorkbook.Sheets

  ' ........... le traitement ici

 MsgBox Ws.Name

 Next Ws

 End Sub


Ne pas oublier d'identifier les objets : exemple : ws.Range("C11").Select

Geli
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : VBA: pas de changement de feuille malgé la boucle

Bonsoir à tous.


Code simplifié :​
VB:
Sub Macro5()
Dim Ws As Worksheet
  For Each Ws In ThisWorkbook.Worksheets
    With Ws
      .Columns("B:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
      .Range("B11").Value = "Date de facture"
      .Range("C11").Value = "N°de facture"
      .Range("D9").Copy Destination:=.Range("C12")
      .Range(("B12:C12"), .[A65000].End(xlUp)).FillDown
      MsgBox .Name
    End With
  Next Ws
End Sub
Pour le reste, sans support, je ne m'y risque pas...​


Bonne nuit.


ℝOGER2327
#7243


Mercredi 18 Clinamen 141 (Les 27 Êtres Issus des Livres Pairs - Vacuation)
20 Germinal An CCXXII, 9,9899h - ruche
2014-W15-3T23:58:32Z
 
Dernière édition:

scoulibri

XLDnaute Nouveau
Re : VBA: pas de changement de feuille malgé la boucle

ça marche super!
Je ne connaissais pas la fonction .range
Merci beaucoup :)

Pour le reste; je vais tenté d'insérer un inputbox pour sélectionner la cellule que je veux incrémenter

Merci encore
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 133
Membres
103 128
dernier inscrit
pmordel@parisbrestconsult