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

Benjy

XLDnaute Occasionnel
Bonjour j'ai un petit problème dont je n'arrive pas à me sortir.

Cette ligne de code fonctionne :
Code:
Workbooks(c).Sheets("Tableau").Range("C30:C" & j) = Workbooks(D).Sheets(E).Range("E4:E" & i).Value

Cette ligne ne fonctionne pas :
Code:
Workbooks(c).Sheets("Tableau").Range(Cells(30, col), Cells(j, col)) = Workbooks(D).Sheets(E).Range("E4:E" & i).Value

La variable col étant déclarer en integer.
Peut on m'expliquer pourquoi la seconde ligne ne fonctionne pas ?
 
Re : Syntaxe de copie

Bonjour,
si le nom de la feuille du classeur D est E , il faut le placer entre parenthèses :
Code:
Workbooks(c).Sheets("Tableau").Range(Cells(30, col), Cells(j, col)) = Workbooks(D).Sheets("E").Range("E4:E" & i).Value
Peut-être que là est ton problème.
A+
 
Re : Syntaxe de copie

Si je simplifie en enlevant la variable col :

Cette ligne fonctionne :
Code:
Workbooks(c).Sheets("Tableau").[B]Range("C30:C" & j)[/B] = Workbooks(D).Sheets(E).Range("E4:E" & i).Value

Cette ligne ne fonctionne pas :
Code:
Workbooks(c).Sheets("Tableau").[B]Range(Cells(30, 3), Cells(j, 3))[/B] = Workbooks(D).Sheets(E).Range("E4:E" & i).Value


La seul différence est la partie en gras. Je ne comprends pas pourquoi la seconde ligne ne fonctionne pas 😕
Quand je dis qu'elle ne fonctionne pas, j'obtiens une erreur de type : execution 1004 : Erreur définie par l'application ou par l'objet.
 
Re : Syntaxe de copie

Bonjour Benjy, Bonjour david84 🙂, Un essai :
VB:
With Workbooks(c).Sheets("Tableau")
VB:
.Range(.Cells(30, 3), .Cells(j, 3)) = Workbooks(D).Sheets(E).Range("E4:E" & i).Value
VB:
End With
Cordialement
 
Re : Syntaxe de copie

Re, Si tu métais 10 secondes à faire tourner quelque chose qui ne fonctionnai pas et que tu mets 10 minutes à faire tourner quelque chose qui fonctionne je ne pense pas que la "viabilité" de la ligne soit en cause. Peut être que le reste du code est à regarder. Des copies en boucles peuvent être très longues surtout si les fichiers sont volumineux. Pour ma part, je pense avoir répondu à la question du fil. En te souhaitant bon courage pour la suite. Cordialement
 
Re : Syntaxe de copie

Non non. Je me suis mal exprimé mon fichier fonctionne en l'état. Et l’exécution est très rapide.
J'importe des données d'un fichier dans plusieurs colonne avec un code ce type :
Code:
Workbooks(c).Sheets("Tableau").[B]Range("C30:C" & j)[/B] = Workbooks(D).Sheets(E).Range("E4:E" & i).Value

Ce que je cherchais à réaliser c'est rajouter une sécurité qui permet de pallier à l'ajout de colonne entre mes colonnes de copie.
Car je colle des données dans les colonnes : C,D,E,F, ...AA, AE, AF etc.
Or si l'utilisateur rajoute une colonne en plein milieu les données suivantes seront toutes décalées.
Je cherchais donc à rajouter une boucle pour chaque copie qui cherche l’entête de la colonne cible puis colle les données à cet endroit.

J'ai ajouter ton code pour l'importation d'une colonne et sa fonctionne bien mais l’exécution prends alors beaucoup plus de temps. Je n'ose pas imaginer si j'ajoute le code à toutes mes colonnes.

Voilà le code sur 2 colonnes du fichier qui fonctionne :
Code:
'Nom local
Workbooks(c).Sheets("Tableau").Range("C30:C" & j) = Workbooks(D).Sheets(E).Range("E4:E" & i).Value
'Surface
Workbooks(c).Sheets("Tableau").Range("D30:D" & j) = Workbooks(D).Sheets(E).Range("F4:F" & i).Value

Voilà le code qui ne fonctionne pas chez moi :
Code:
For x = 3 To 100
If cells(26, x) = "Nom local" Then
col = x
End If
Next x
Workbooks(c).Sheets("Tableau").Range(Cells(30, col), Cells(j, col)) = Workbooks(D).Sheets(E).Range("E4:E" & i).Value


Mais ceci ne fonctionne pas.
 
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
15
Affichages
782
Réponses
5
Affichages
909
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
8
Affichages
390
Réponses
4
Affichages
754
Réponses
8
Affichages
780
Retour