Problème dans code VBA

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

SPEA

XLDnaute Occasionnel
Bonsoir tout le monde,

j'ai un problème avec une macro qui ne fonctionne pas, c'est une macro qui recopie les données de plusieurs feuilles sur une feuille "Bilan".

Le soucis se situe dans la ligne qui definit le string 'findate' qui liste la dernière colonne où recuperer les données.

PS: soyez indulgents je débute en VBA c'est ma première macro, j'essaie d'adapter une macro que Pierrejean avait fait pour un autre fichier...

Merci
 

Pièces jointes

Re : Problème dans code VBA

Salut SPEA, le forum
tu as une erreur de colonne dans ton code:
findate = Sheets(i).Range("III1").End(xlToLeft).Column

findate = Sheets(i).Range("II1").End(xlToLeft).Column

Des I et des 1, ça peux porter à confusion quelques fois

Xtian
 
Re : Problème dans code VBA

Bonsoir tout le monde,

Dans findate = Sheets(i).Range("III1").End(xlToLeft).Column
III1 n'existe pas le maximum c'est IV1
=> findate = Sheets(i).Range("IV1").End(xlToLeft).Column


Dans Sheets("Bilan").Range(Mid(form, n, 1) & derlincol + 1 & ":" & Mid(form, n, 1) & derling).Select, il faut d'abord etre sur la feuille pour faire le select du Range.
=> Sheets("Bilan").Select
=> Sheets("Bilan").Range(Mid(form, n, 1) & derlincol + 1 & ":" & Mid(form, n, 1) & derling).Select

Enfin, pour aller un peu plus vite et eviter le pb ci-dessus :
=> Sheets("Bilan").Range(Mid(form, n, 1) & "65536").End(xlUp).Copy (Sheets("Bilan").Range(Mid(form, n, 1) & derlincol + 1 & ":" & Mid(form, n, 1) & derling))

voir modifs dans le fichier joint.

Edit : tu peux egalement enlever cette ligne :
Application.CutCopyMode = False
 

Pièces jointes

Dernière édition:
Re : Problème dans code VBA

Ok ca y est je me suis depétré de mon code VBA.
J'ai créé un bouton sur une feuille, comment affecter la macro au click sur le bouton ?

Quelle est la ligne de code à inserer dans VBA ?

Merci
 
Re : Problème dans code VBA

bah non en fait j'ai toujours le pb avec cette ligne mais j'ai trouvé pour assigner une macro au bouton.

J'ai toujours l'erreur 438 avec cette ligne:
findate = Sheets(i).Range("IV1").End(xlToLeft).Column...
 
Re : Problème dans code VBA

Bonjours,

Il faut que tu repostes ton fichier pour qu'on puisse voir ce qui se passe (avec les modifications que tu as faites depuis).
La ligne findate = Sheets(i).Range("IV1").End(xlToLeft).Column etant bonne je pense qu'il faut chercher le pb sur la variable i
Avant cette ligne fait un MsgBox i pour voir ce que renvoie i et etre sur que ce soit un nom de sheet.
 
Re : Problème dans code VBA

Bonjour,

Curieux que tu aies un message à cette innstruction.

Toutefois, dans ta macro il n'y a aucune variable déclarée.
Mets donc en début de macro ceci (après sub recopie) :

Code:
Dim form
Dim ligcop as integer, derling as integer, derlincol as integer
Dim debdate as byte, i as byte, findate as byte, n as byte

Ensuite, après If Sheets(i).Name <> "Bilan" Then place cette instruction MsgBox Sheets(i).Name et dis nous ce que cela te donne comme message.

Au besoin change FINDATE par un autre nom et si tu le fais n'oublie pas de changer le nom de cette nouvelle variable en début de macro.

A te lire

Dan
 
- 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
6
Affichages
637
Retour