Excel macro - coller non seulement les cellules vides à partir d'une feuille à l'autre
Ci-dessous le code que j'utilise pour copier des cellules à partir d'une feuille et de le coller dans un autre.
Sheets("codes").Select
Range("A5:A100").Select
Selection.Copy
Sheets("Sheet2").Select
Range("B28").Select
ActiveSheet.Paste
Le problème avec ceci est que certaines cellules sont vides mais je ne tiens pas à être copié sur la Feuil2. J'ai eu une idée de ici mais cette méthode est trop long. Est il possible que je peux effectuer une itération sur la sélection et vérifier si la valeur est non-vide et coller. De cette façon, je peux aussi coller un autre texte (ex: #NA) dans les cellules vides.
OriginalL'auteur antnewbee | 2013-01-24
Vous devez vous connecter pour publier un commentaire.
Vous ressemble peut-être à prendre en commun certaines erreurs de débutant ici (c'est bien que nous avons tous fait).
VBA exemple, ligne par ligne, des explications
ASTUCE: Essayez de ne pas utiliser "Select" ou "Copier". Pourquoi utiliser select lorsque tout ce que vous avez à faire est de référencer les cellules elles-mêmes? Par exemple, au lieu d'utiliser
Suffit d'utiliser
J'ai fait la même chose tout le temps quand j'ai commencé, et ça ne fonctionne jamais. "Sélectionner" les causes des erreurs à gauche et à droite. Utiliser mon code, lisez les commentaires, et vous serez amende. Un rapide AVERTISSEMENT: je n'ai pas Excel sur cet ordinateur donc je ne pouvais pas tester le code. Si cela ne fonctionne pas pour une raison quelconque, laissez-moi un commentaire et demain, je vais le corriger au travail.
Le code ci-dessus va ignorer les cellules vides complètement lors de la copie des données à votre deuxième feuille. Si vous souhaitez saisir un texte particulier pour les cellules vides à la place (comme "N/A"), puis vous pouvez utiliser les éléments suivants:
Vous êtes les bienvenus. J'ai eu un moment difficile dans le début trop, et fait exactement ce que vous avez fait ci-dessus. Le code/commentaires que j'ai fait décrire exactement ce que je voudrais quelqu'un m'ont dit quand j'ai commencé. Je ne peux pas parler pour les autres, mais une fois que les concepts ci-dessus cliqué pour moi, tout est devenu tellement plus facile.
En regardant votre solution, il faut du TEMPS que vous copiez la cellule par cellule. Et c'est la copie de la valeur uniquement ( formule, la mise en forme électronique.t.c. ) sont perdues. Mais +1 pour les commentaires que pour les débutants
Exactement +1 pour les commentaires 🙂
oui presque fini maintenant 🙂 maintenant, tout ce que j'ai à faire est de sélectionner la gamme de tableau dynamiquement...à la peine dans que trop BTW 🙁
OriginalL'auteur Lopsided
Facile:
J'ai utilisé
xlCellTypeConstants
mais il existe de nombreuses autres possibilités.Sheet1
est généralement équivalent àSheets("Sheet1")
. Le premier est le nom dans le VBE (programmeur), le second est le nom de l'interface utilisateur (vue d'utilisateur). Je préfère généralement les fiirst syntaxe, car il est plus court et permet de renommer les feuilles (pour l'utilisateur), sans impact sur le code.SpecialCells
OriginalL'auteur Patrick Honorez
Si vous n'avez pas besoin de formatage que je voudrais utiliser. Il n'est de copier la plage indiquée sur la feuille de calcul à une variable, boucle par le biais de cette variable, vérifier les cellules sont vides et mettre quelle que soit la chaîne de caractères que vous souhaitez. C'est agréable et rapide. Si vous souhaitez conserver la mise en forme, vous pouvez le coller spécial juste les formats de la gamme de sortie.
Et de l'appeler avec:
OriginalL'auteur CuberChase