vba syntaxe colonnes

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

grodep

XLDnaute Occasionnel
Bonjour à tous, je rouvre un nouveau fil car cette nouvelle question n'a rien à voir avec celle que j'ai posé ce matin (merci pierrot93).
Dans mon tableau, j'ai une macro vba qui répertorie dans un dico une certaine liste puis qui l'affiche dans une colonne "fixe" (AK2:AK100).
Code:
Sub listage_absents()
Set mondico = CreateObject("Scripting.Dictionary")
For i = 3 To 35
For j = 25 To 75
If Cells(j, i) <> "" Then temp = Cells(j, 1)
mondico(temp) = temp
Next j
 [AK2:AK100].ClearContents
     For Each c In mondico
      [AK65000].End(xlUp).Offset(1) = c
     Next c
next i
End Sub
Ce que je souhaiterais, c'est qu'elle affiche ce résultat sur la colonne sur laquelle elle vient d'opérer et qu'elle décale ensuite au fur et à mesure. Malheureusement, je ne sais comment écrire cette colonne en vba.
MErci à tous les contributeurs
 

Pièces jointes

Re : vba syntaxe colonnes

bonjour grodep

Atester:
Code:
Sub listage_absents()
Set mondico = CreateObject("Scripting.Dictionary")
For i = 3 To 35
For j = 25 To 75
If Cells(j, i) <> "" Then temp = Cells(j, 1)
mondico(temp) = temp
Next j
 Range(Cells(1, i), Cells(100, i)).ClearContents
     For Each c In mondico
      Cells(Rows.Count, i).End(xlUp).Offset(1) = c
     Next c
Next i
End Sub
 
Re : vba syntaxe colonnes

Merci pierrejean pour cette proposition.
Pour une raison que je n'ai pas encore élucidé, cela me donne un résultat en "escalier" tout à fait surprenant 🙂 Pas exactement ce que je cherchais, mais artistiquement très joli: Le listing des noms débute à chaque nouvelle colonne à partir de la dernière ligne utilisée sur la colonne d'avant.

J'ai fini par me creuser un peu la tête pour trouver un résultat certes moche en terme de syntaxe vba mais qui me donne le résultat escompté:
Code:
Set mondico = CreateObject("Scripting.Dictionary")
Range("C5:AF23").Clear
For i = 3 To 32
For j = 25 To 65
If Cells(j, i) <> "" Then temp = Cells(j, 1)
mondico(temp) = temp
Next j
t = 23 ' l'en-tête de mon tableau est sur la ligne 24
For Each c In mondico
          Cells(t, i).Value = c
          t = t - 1
          Next c
          temp = ""
          mondico.RemoveAll
Next i

Ainsi, j'ai bien ma liste de noms qui apparaît au dessus de chaque colonne!

Merci pierrejean de m'avoir guidé sur le bon chemin, une nouvelle fois!
 
- 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
8
Affichages
579
Réponses
8
Affichages
242
Réponses
4
Affichages
397
Réponses
3
Affichages
766
Réponses
3
Affichages
539
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
297
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
735
Réponses
12
Affichages
574
Retour