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

Boucle avec variable à valeurs de type string

  • Initiateur de la discussion Initiateur de la discussion Egruat
  • 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 !

Egruat

XLDnaute Occasionnel
Bonjour,

Est-il possible de faire une boucle avec une variable de type String ?

Ma problématique est la suivante:

. un classeur (classeur 1) ayant plusieurs feuilles nommées
. sur chaque feuille, j'ai un champ de cellule défini avec un nom

Je souhaite coller chaque champ l'un en-dessous de l'autre dans un autre classeur (classeur 2).
1) boucler toutes les feuilles du classeur 1
2) feuille par feuille, copier les valeurs des cellules du champ nommé
3) coller ces cellules dans le classeur 2


Je tente de faire une boucle sur une le nom des champs (variable de type string) mais ca ne fonctionne pas. Pourriez-vous m'aider ?

Voici le code

Par exemple:

Sub Consolidation()
Dim j As String
Dim Ws As Worksheet

For Each Ws In ActiveWorkbook.Worksheets

If j = "Stat_A" or j = "Stat_B" or "Stat_C" Then

Range(j).Select
Selection.Copy
Windows("Competitor tracking base - Eurostat.xlsm").Activate
Sheets("Data").Select
Range("A5").Select

If IsEmpty(Range("A8")) Then
Range("A5").Select
Else
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
End If

ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
ActiveWindow.ActivateNext
ActiveWorkbook.Close

Next

Next

End If

Next
 
Re : Boucle avec variable à valeurs de type string

Bonsoir Egruat,

Tu ne peux pas faire défiler une boucle avec des strings.

La seule façon réalisable est de balayer les cellules en testant leur contenu. Un extrait de code n'étant pas forcément lisible, voici un exemple de boucle qui analyse les cellules non vides de la colonne A:

Code:
For Each cel In Range("A:A").SpecialCells(xlCellTypeConstants)
  If cel.Value = "...." Or cel.Value = "...." Or .... Then
    ...
    ... 
    ...
  End If
Next

Espérant avoir répondu.

Cordialement.
 
Re : Boucle avec variable à valeurs de type string

Merci de ta réponse. Mais je ne pense pas pouvoir le faire sur mon classeur. Je cherche en fait à boucler tous les champs de cellules définis dans un classeur? Est-ce possible ?
 
Re : Boucle avec variable à valeurs de type string

Bonjour Egruat, Papou-net 🙂,

Ce que j'en ai compris grâce au classeur qui a été généreusement fourni avec la question 😡.

  • un classeur avec des plages nommées au sein des feuilles du classeur (interprétation libre et sans doute osée de la notion de 'champs' ?)
  • le but ?: recopier ces plages vers une feuille unique 😕

Une piste dans le classeur joint- cliquer sur le bouton GO de la feuille "RES".

Après ce que j'en dit....😎

VB:
Sub RepiquerEnPleinChamps()
Dim xName As Name, Quoi$
Dim xrg As Range, ligne&
  
  Sheets("Res").Range("a:j").Clear
  Application.ScreenUpdating = False
  MsgBox "On continue..."
  For Each xName In ThisWorkbook.Names
    Quoi = xName.RefersTo
    If Left(Quoi, 1) = "=" Then Quoi = Mid(Quoi, 2)
      On Error Resume Next
      Set xrg = Nothing
      Set xrg = Range(Quoi)
      On Error GoTo 0
      If Not xrg Is Nothing Then
        If xrg.Parent.Name <> "Res" Then
          If xrg.Areas.Count = 1 Then
            If ligne = 0 Then
              ligne = 1
              xrg.Copy Sheets("Res").Cells(ligne, "a")
            Else
              xrg.Copy Sheets("Res").Cells(ligne, "a")
            End If
            ligne = ligne + xrg.Rows.Count
          End If
        End If
      End If
  Next xName
End Sub
 

Pièces jointes

Dernière édition:
- 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

Discussions similaires

Réponses
4
Affichages
177
Réponses
3
Affichages
673
Réponses
5
Affichages
477
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…