VBA: VBA ne reconnait pas Ws bien que définie

bertrand1202

XLDnaute Occasionnel
Bonjour


je souhaite cumuler dans la feuille A dans les colonnes C D E les éléments des autres feuilles du classeur.

Si en feuil1 C5=10et en Feuil2 C5= 5 , j'obiendrai: 15 en C5 en feuille A

Ma macro ne reconnaît pas Ws bien que je l'aies initialisée.

Ci-joint Code:
Code:
[/Sub sommecolonnefeuilles()
Dim c As Byte
Dim vligne As Integer
Dim ws As Worksheet
Dim vsomcolonne As Long
Dim vcellule As Range

  For Each vcellule In Range("b5:b" & Range("b65536").End(xlUp).Row)
   For Each ws In ActiveWorkbook.Worksheets
    For c = 1 To 3
      
      vsomcolonne = vsomcolonne + ws("ws.Name").vcellule(vligne, c)
      ws("A").vcellule(vligne, c) = vsomcolonne
      
    Next c
   Next ws
  Next vcellule
  ws("A").vcellule(vligne, c) = vsomcolonne + ws("A").vcellule(vligne, c)
  vsomcolonne = 0
  

End Sub


Merci d'avance de vos éclairages pour que je comprenne le pourquoi du comment. VBA relève encore un peu de la magie pour moi.
merci d'avance.
 

CBernardT

XLDnaute Barbatruc
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir bertrand1202,

Tes efforts sont louables, cependant le code affiché ne donne guère le sens des tâches à automatiser.

Poste un extrait du projet afin que cela soit plus explicite.
 

bertrand1202

XLDnaute Occasionnel
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonjour Bernard


Merci de ta réponse, je joins un petit fichier , mon but est de bien comprendre le mécanisme et la grammaire de VBA

Merci de l'aide , je commence à désespérer.
 

Pièces jointes

  • Somme colonnes basique.xls
    25 KB · Affichages: 100

ROGER2327

XLDnaute Barbatruc
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir à tous
Je pense qu'il faut initialiser ws :
Code:
[COLOR="DarkSlateGray"]   Set ws = Worksheets("A")[/COLOR]
et écrire :
Code:
[COLOR="DarkSlateGray"]ws.vcellule(vligne, c) = vsomcolonne[/COLOR]
Difficile d'en dire plus sur un code aussi incomplet.​
ROGER2327
#2046

Remarque : Réponse rédigée avant le dépôt du classeur support.
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : VBA: VBA ne reconnait pas Ws bien que définie

Re,

Ci-joint une solution

Code:
Sub sommefeuilles()
Set Sourc = Sheets("A").Range("B4")
Sourc.CurrentRegion.Offset(1, 0).Clear
For Each X In Sheets
    If X.Name <> "A" Then
        For i = 1 To X.Range("C5").CurrentRegion.Rows.Count
            For j = 1 To X.Range("C5").CurrentRegion.Columns.Count
                Sourc.Offset(i, j).Value = Sourc.Offset(i, j).Value + X.Cells(i + 4, j + 2).Value
            Next
        Next
    End If
Next
End Sub
 

Pièces jointes

  • Somme.xls
    26 KB · Affichages: 95
  • Somme.xls
    26 KB · Affichages: 101
  • Somme.xls
    26 KB · Affichages: 94
Dernière édition:

bertrand1202

XLDnaute Occasionnel
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonjour Catrice, Bernard Roger 3327


Merci de vos réponses . Vligne est un entier et correspond au numéro de ligne. Quant à ws , je pensais l'avoir initialisée avec for each.

ce que je veux faire est simple , c'est cumuler en feuille (A) dans la colonne c^par exemple, les sommes figurant en colonne c sur feuil et feuil 2

Merci de vos explications.
je m'y remets pour essayer de comprendre

Bonne soirée
 

bertrand1202

XLDnaute Occasionnel
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir Catrice

Puis je demander quelques points sur le code ?

Sub sommefeuilles()
Set Sourc = Sheets("A").Range("B4")
Sourc.CurrentRegion.Offset(1, 0).Clear
For Each X In Sheets ' Que signifie X? est ce une définition VBA pour les noms de feuilles?, pourquoi ne définit on pas le X au départ ?[/COLOR]
If X.Name <> "A" Then
For i = 1 To X.Range("C5").CurrentRegion.Rows.Count
For j = 1 To X.Range("C5").CurrentRegion.Columns.Count
toto = X.Cells(i + 5, j + 3).Address ( à quoi sert .Adress?
Sourc.Offset(i, j).Value = Sourc.Offset(i, j).Value + X.Cells(i + 4, j + 2).Value 'Pourqoui j+2 , i+4 c'est pour arriver à ligne 5
Next
Next
End If
Next
End Sub

merci de m'éclairer , merci d'avance .
 

Catrice

XLDnaute Barbatruc
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir,

Avec For Each X In Sheets on boucle sur les feuilles du classeurs.
X est alors à chaque boucle un objet Feuille

toto = X.Cells(i + 5, j + 3).Address , ne sert à rien. C'etait un test que j'ai oublié d'enlever...
 

bertrand1202

XLDnaute Occasionnel
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir

Merci Catrice, je cherche toujours à faire pas à pas car je ne maitrise pas VBA et je cherche à comprendre comment cela marche. Je le fais encore d'une manière lourde pour essayer de m'en sortir.
Désolé si mes questions peuvent paraître stupides, je m'autoforme gr^ce à vous. Merci de votre aide.
Bonne soirée.
 

Discussions similaires

Réponses
7
Affichages
326
Réponses
1
Affichages
168

Statistiques des forums

Discussions
312 211
Messages
2 086 294
Membres
103 171
dernier inscrit
clemm