whenever i use multiple devices on spi : tft screen, https://www.arduino.cc/en/Guide/TFT) and the bme 280 (breakout board from adafruit) the Arduino fails 
to detect the devices

Code of the screen seperately (works)
-------------------------------------

 // include the necessary libraries
 #include <SPI.h>
 #include <SD.h>
 #include <TFT.h> // Arduino LCD library
 
 // pin definitions
 #define sd_cs 7
 #define lcd_cs 10
 #define dc 9
 #define rst 8
 
 // Define screen pins
 TFT TFTscreen = TFT(lcd_cs, dc, rst);
 
 //Define variables
 char sensorPrintout[4];
 char sensorPrintout2[4];
 
 // this variable represents the image to be drawn on screen
 PImage logo;
 
 void setup() 
 {
 // Start serieële connectie
 Serial.begin(9600);
 while (!Serial) { }
 
 // Toegang sd-kaart
 Serial.print("Initializing SD card...");
 if (!SD.begin(sd_cs)) 
 {
 Serial.println("failed!");
 return;
 }
 else
 {
 Serial.println("OK!");
 }
 
 // Start and clear TFT screen
 TFTscreen.begin();
 TFTscreen.background(0, 0, 0);
 
 // Lookup image on TFT screen
 logo = TFTscreen.loadImage("Logo.bmp");
 if (!logo.isValid()) 
 {
 Serial.println("error while loading Logo.bmp");
 }
 if (logo.isValid() == false) 
 {
 return;
 }

 //Draw logo on the screen 
 Serial.println("drawing image");
 TFTscreen.image(logo, 0, 0);
 
 // Change textcolor to white
 TFTscreen.stroke(255,255,255);
 
 //Write some text
 TFTscreen.setCursor(0,25);
 TFTscreen.print("Schuif 1: ");
 TFTscreen.setCursor(75,25);
 TFTscreen.print((char)247);
 TFTscreen.print("C");
 
 //Write some text
 TFTscreen.setCursor(0,50);
 TFTscreen.print("Schuif 2: ");
 TFTscreen.setCursor(75,50);
 TFTscreen.print((char)247);
 TFTscreen.print("C");
 }
 
 void loop() {
 // Read value of A0
 int value = analogRead(A0);
 Serial.println(value);
 float voltage = value * (5.0/1023.0);
 Serial.println(voltage);
 String sensorVal = String(analogRead(A0));
 String sensorVal2 = String(voltage);
 
 
 // Change sensorvalue to a character array
 sensorVal.toCharArray(sensorPrintout, 4);
 sensorVal2.toCharArray(sensorPrintout2, 4);
 
 // Change textolor to white
 TFTscreen.stroke(255,255,255);
 
 // Write value of sensor 1
 TFTscreen.setCursor(55,25);
 TFTscreen.print(sensorPrintout);
 
 // Write value of sensor 2
 TFTscreen.setCursor(55,50);
 TFTscreen.print(sensorPrintout2);
 
 // wait 500ms
 delay(1000);
 
 // Change textcolor to black
 TFTscreen.stroke(0,0,0);
 
 // Write value of sensor 1
 TFTscreen.setCursor(55,25);
 TFTscreen.print(sensorPrintout);
 
 // Write value of sensor 2
 TFTscreen.setCursor(55,50);
 TFTscreen.print(sensorPrintout2);
 }

Code of the BME280 seperately (works)
-------------------------------------

 #include <Wire.h>
 #include <SPI.h>
 #include <Adafruit_Sensor.h>
 #include <Adafruit_BME280.h>
 
 #define BME_SCK 13
 #define BME_MISO 12
 #define BME_MOSI 11
 #define BME_CS 6
 
 #define SEALEVELPRESSURE_HPA (1013.25)
 
 //Adafruit_BME280 bme; // I2C
 Adafruit_BME280 bme(BME_CS); // hardware SPI
 //Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI
 
 unsigned long delayTime;
 
 void setup() {
 Serial.begin(9600);
 Serial.println(F("BME280 test"));
 
 bool status;
 
 // default settings
 // (you can also pass in a Wire library object like &Wire2)
 status = bme.begin(); 
 if (!status) {
 Serial.println("Could not find a valid BME280 sensor, check wiring!");
 while (1);
 }
 
 Serial.println("-- Default Test --");
 delayTime = 1000;
 
 Serial.println();
 
 delay(100); // let sensor boot up
 }
 
 
 void loop() { 
 printValues();
 delay(delayTime);
 }
 
 
 void printValues() {
 Serial.print("Temperature = ");
 Serial.print(bme.readTemperature());
 Serial.println(" *C");
 
 Serial.print("Pressure = ");
 
 Serial.print(bme.readPressure() / 100.0F);
 Serial.println(" hPa");
 
 Serial.print("Approx. Altitude = ");
 Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
 Serial.println(" m");
 
 Serial.print("Humidity = ");
 Serial.print(bme.readHumidity());
 Serial.println(" %");
 
 Serial.println();
 }

Code of the Tft screen with the BME280 (doesn't work)
-----------------------------------------------------

 // include the necessary libraries
 #include <Adafruit_Sensor.h>
 #include <Adafruit_BME280.h>
 #include <SPI.h>
 #include <SD.h>
 #include <TFT.h> // Arduino LCD library
 #include <Wire.h>
 
 // pin definitions
 #define bme_cs 6
 #define sd_cs 7
 #define rst 8
 #define dc 9
 #define lcd_cs 10
 #define mosi 11
 #define miso 12
 #define sck 13
 
 //var definitions
 #define SEALEVELPRESSURE_HPA (1013.25)
 
 //Define hardware SPI connection with BME280
 Adafruit_BME280 bme(bme_cs); // hardware SPI
 
 // Define screen pins
 TFT TFTscreen = TFT(lcd_cs, dc, rst);
 
 //Define variables
 char sensorPrintout1[6];
 char sensorPrintout2[6];
 unsigned long delayTime;
 
 
 // this variable represents the image to be drawn on screen
 PImage logo;
 
 void setup() 
 {
 // Start serial communication
 Serial.begin(9600);
 while (!Serial) { }
 
 bool status;
 
 // Initializing SD card
 Serial.print("Initializing SD card...");
 if (!SD.begin(sd_cs)) 
 {
 Serial.println("failed!");
 //while (1);
 }
 else
 {
 Serial.println("OK!");
 }
 
 //Initializing BME280
 Serial.print("Initializing BME280");
 status = bme.begin(); 
 if (!status) 
 {
 Serial.println("Could not find a valid BME280 sensor, check wiring!");
 while (1);
 }
 else
 {
 Serial.println("BME 280 sensor found"); 
 }
 
 // Start and clear TFT screen
 TFTscreen.begin();
 TFTscreen.background(0, 0, 0);
 
 // Lookup image on TFT screen
 logo = TFTscreen.loadImage("Logo.bmp");
 if (!logo.isValid()) 
 {
 Serial.println("error while loading Logo.bmp");
 }
 if (logo.isValid() == false) 
 {
 return;
 }
 
 //Draw logo on the screen 
 Serial.println("drawing image");
 TFTscreen.image(logo, 0, 0);
 
 // Change textcolor to white
 TFTscreen.stroke(255,255,255);
 
 //Write some text
 TFTscreen.setCursor(0,25);
 TFTscreen.print("temperatuur 1: ");
 TFTscreen.setCursor(100,25);
 TFTscreen.print((char)247);
 TFTscreen.print("C");
 
 //write some text
 TFTscreen.setCursor(0,50);
 TFTscreen.print("luchtvochtigheid 2: ");
 TFTscreen.setCursor(100,50);
 TFTscreen.print((char)37);
 TFTscreen.print("C");
 }
 
 void loop() {
 // Read value of temperature
 int value1 = bme.readTemperature();
 int value2 = bme.readHumidity();
 String sensorVal1 = String(value1);
 String sensorVal2 = String(value2);
 
 
 // Change sensorvalue to a character array
 sensorVal1.toCharArray(sensorPrintout1, 6);
 sensorVal2.toCharArray(sensorPrintout2, 6);
 
 // Change textolor to white
 TFTscreen.stroke(255,255,255);
 
 // Write value of temperature sensor
 TFTscreen.setCursor(55,25);
 TFTscreen.print(sensorPrintout1);
 
 // Write value of humidity sensor
 TFTscreen.setCursor(55,50);
 TFTscreen.print(sensorPrintout2);
 
 // wait 500ms
 delay(1000);
 
 // Change textolor to black (aka overwrite text)
 TFTscreen.stroke(0,0,0);
 
 // Write value of temperature sensor
 TFTscreen.setCursor(55,25);
 TFTscreen.print(sensorPrintout1);
 
 // Write value of humidity sensor
 TFTscreen.setCursor(55,50);
 TFTscreen.print(sensorPrintout2);
 }

Now this is the serial output

 Initializing SD card...failed!
 Initializing BME280Could not find a valid BME280 sensor, check wiring!

at first it only showed the first line, then it stopped because of the `while(1)` loop. so i put it in comment to see if the BME initializes on its own. 

I also tested the screen+SD card and the BME280 seperately which worked just fine

**update**

I tried to test the programs with the complete circuit. The program of the TFT screen works fine that way but when i try the program of the BME280 it doesn't work. 
I have to remove the TFT screen from the breadboard to make it work.